|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 39 ![]() |
Bonjour je vous écris car j'ai un problème de requête plus que complexe et pour lequel je ne trouve pas de solution =((
aussi, j'ai grand besoin de votre aide et je remercie d'avance toutes les bonnes âmes qui voudront bien m'aider je vous explique mon problème à la base j'ai un filtre pour rechercher des dvd par genre (horreur, action...) Comme je suis dépendante de catalogue produits qui n'ont jamais les mêmes titres pour une catégorie, j'ai donc créé une table de référence genreRef qui a pour champs : id + typeFilm Nom de la table : genreRef Nom du champ : typeFilm Code :
le champ qui contient ces infos s'appelle : genre Nom de la table : dev Nom du champ : genre Code :
Code :
SELECT typeFilm FROM genreRef, dvd WHERE genre= typeFilm ma question : est ce qu'il existe une requête pour faire une espèce de like sur un champ et non une valeur Code :
SELECT typeFilm FROM genreRef, dvd WHERE genre LIKE '%typeFilm%' si non, =( quelqu'un pourrait il me dire ce que je dois faire =( merciiii |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Salut,
Tu dois pouvoir faire quelque chose comme cela : Code :
SELECT typeFilm FROM genreRef, dvd WHERE genre LIKE '%'||typeFilm||'%' Code :
SELECT typeFilm FROM genreRef, dvd WHERE genre LIKE CONCAT('%',typeFilm,'%')
__________________
N'oubliez pas le Tag : ![]() C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama] Je ne réponds pas aux messages privés s'ils sont liés à une question du forum Mon site sur Developpez.com |
|
|
10
|
|
|
#3 | ||||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Bonjour
Oui, les requêtes LIKE existent et notamment celle que tu présentes. Citation:
Mais les performances de ce type de requêtes ne sont pas top.Il est clair que tu as un petit problème dans la structure de ta table. Il serait plus judicieux d'avoir une table des genres (n'en contenant qu'un à la fois) Citation:
Citation:
Citation:
a+ |
||||
|
|
20
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
Une autre solution serait de revoir la conception de votre schéma qui m'a l'air bancal. Idéalement il vous faudrait des tables de référence : Par exemple T_GENRE_GEN (id, nom, ....) 1, 'Action' 2, 'Aventure' 3, 'Comedie' etc, Et une relation entre votre table dvd et cette table qui aura une cardinalité du type (MCD) : DVD 1, n ------- 0,n T_GENRE_GEN voir la suivante si vous avez la possibilité de saisir un dvd ans lui attribuer de genre : DVD 0,n ------- 0,n T_GENRE_GEN Quand vous passerez au mpd ceci va se traduire par une création d'une autre table entre ces deux premières tables (pour pouvoir satisfaire cette relation) Et là vous n'aurez pas à utiliser de like, et beaucoup de vos requêtes de recherche seront désormais très faciles à utiliser (et plus performantes par la même occasion). Bref, si vous voulez fixer votre schéma allez faire un tour du côté du forum de modélisation qui regorge d'exemple pour votre cas actuel. edit : pris de vitesse par dehorter olivier |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() |
Citation:
En effet vous ne pourrez profiter d'aucun indexe. Votre modélisation est a revoir. Une bonne modélisation= de bonne performance et des requêtes simple a exprimer... et donc à écrire.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() |
Citation:
Normal votre 'jointure' sans prédicat?(pas de liaison entre les tables genreRef et dvd)?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com