Recherches selon plusieurs critères MYSQL
Résolu
silicon6969
Messages postés
146
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je souhaiterais effectuer une recherche selon plusieurs critères dans une base de données contenant plusieurs tables. Cependant j'hésite encore sur la façon de m'attaquer à celà. Dois-je utiliser un formulaire et filtrer selon les données renvoyer ou utiliser une fonction qui me permettra de filtrer avec plusieurs critères.
merci d'avance.
je souhaiterais effectuer une recherche selon plusieurs critères dans une base de données contenant plusieurs tables. Cependant j'hésite encore sur la façon de m'attaquer à celà. Dois-je utiliser un formulaire et filtrer selon les données renvoyer ou utiliser une fonction qui me permettra de filtrer avec plusieurs critères.
merci d'avance.
A voir également:
- Maya cherche des mocassins noirs ou rouges en taille 40. filtrez la table selon ses critères. combien y a-t-il de résultats ?
- Comment réduire la taille d'un fichier - Guide
- Table des matières word - Guide
- Table ascii - Guide
- Resultats foot - Télécharger - Vie quotidienne
- Dans la présentation à télécharger, déplacez l'image dans le cadre sans en modifier la taille. redressez l'image pour que le niveau de la mer soit à l'horizontale. faites correspondre : la ligne avec le niveau de la mer ; le point avec le sommet de la grande voile. combien d'oiseaux sont dans le cadre ? - Forum Word
3 réponses
salut !
tout dépend de ce que souhaite récupérer.
D'une part, le nombre d'enregistrement à un impact sur la durée de traitement, donc plus il y aura de critère plus cela risque de prendre du temps (en fonction de la taille, faire plusieurs requete peu s'avérer + rapide qu'une seule), de même, il peu aussi être plus rapide dans certains cas de filtrer des résultats dans ton code que dans ta requête.
Ensuite il faut savoir si tes critères sont stricts ou s'ils ne s'éliminent pas entre eux (par exemple tu peux ne récupérer que les données correspondant aux critères A ET B ou récupérer ceux qui correspondent à A OU B.
Donc finalement il faudrai un peu plus d'info pour t'aider précisément ^^.
naga
tout dépend de ce que souhaite récupérer.
D'une part, le nombre d'enregistrement à un impact sur la durée de traitement, donc plus il y aura de critère plus cela risque de prendre du temps (en fonction de la taille, faire plusieurs requete peu s'avérer + rapide qu'une seule), de même, il peu aussi être plus rapide dans certains cas de filtrer des résultats dans ton code que dans ta requête.
Ensuite il faut savoir si tes critères sont stricts ou s'ils ne s'éliminent pas entre eux (par exemple tu peux ne récupérer que les données correspondant aux critères A ET B ou récupérer ceux qui correspondent à A OU B.
Donc finalement il faudrai un peu plus d'info pour t'aider précisément ^^.
naga
tu peux utiliser la fonction OR du SQL.
Du style:
SELECT blabla,blibli FROM foobar WHERE blabla LIKE %hihi% OR bliblib LIKE %ahha%
Du style:
SELECT blabla,blibli FROM foobar WHERE blabla LIKE %hihi% OR bliblib LIKE %ahha%
bonjour,
dans le cas ici présent je dois effectuer une recherche avec plusieurs critères (le prix d'un matériau et son poids par exemple), chacune des informations ayant sa table dans la base de donnée. Dans le cas ici présent je dois absolument effectuer avec les deux critères donc sa serait bien une ET.
dans le cas ici présent je dois effectuer une recherche avec plusieurs critères (le prix d'un matériau et son poids par exemple), chacune des informations ayant sa table dans la base de donnée. Dans le cas ici présent je dois absolument effectuer avec les deux critères donc sa serait bien une ET.
ok. donc tu doit identifier le lien qu'il y a entre tes tables (par exemple un identifiant de pièce) afin d'avoir l'esquisse de ta requête (peu être qu'il a déjà un existant qui affiche la liste sans filtrage? dans ce cas tu peux t'appuyer sur cette requete).
par exemple :
nous dirons que tu as 3 tables :
tu veux récupérer les infos pour un prix de 100 et un poids de 650 :
ou encore
par exemple :
nous dirons que tu as 3 tables :
materiaux (ID_MAT, NOM_MAT) poids (ID_MAT,sPOIDS) prix (ID_MAT,sPRIX)
tu veux récupérer les infos pour un prix de 100 et un poids de 650 :
SELECT NOM_MAT , POIDS , PRIX FROM (materiaux , poids , prix) WHERE materiaux.ID_MAT = poids.ID_MAT and materiaux.ID_MAT = prix.ID_MAT and prix.sPRIX = 100 and poids.sPOIDS = 650
ou encore
SELECT NOM_MAT , POIDS , PRIX FROM materiaux join poids on poids.ID_MAT = materiaux.ID_MAT join prix on prix.ID_MAT = materiaux.ID_MAT WHERE prix.sPRIX = 100 and poids.sPOIDS = 650