Titre: recherche en boucle dans une table
Posté par: tavman le le 04-01-2004 a 16:43:25
Salut a tous et bonne année.
En fait je me posait juste une question pour optimiser mon code...
En gros, je doit faire une recherche dans une table de certains champs précis... Ces champs sont du genre nom1 nom2.... nom20 et chacun est unique
ca n'a rien a voir avec l'id ou une quelconque auto-incrementation je precise (sinon ce serait trop simple ;D )...
En fait, ma question est la suivante :
vaut-il mieux faire une seule recherche avec plusieurs condition genre ca :
'SELECT monchamp FROM user WHERE idnom=nom1 OR idnom=nom2 OR idnom=nom3 OR idnom=nom4... idnom=nom20';
ou faire plusieurs recherches dans une boucle genre :
for ($i=1; $i<=20; $i++){ 'SELECT monchamp FROM user WHERE idnom=nom'.$i; }
A mon avis, la premiere solution est la meilleure car elle evite de faire 20 recherches dans ma table mais comme je suis pas tout a fait sur je prefere demander avant de faire des conneries... |
Titre: Re:recherche en boucle dans une table
Posté par: FireLink le le 04-01-2004 a 16:50:29
| Perso, j'opterais pour la première aussi, elle est qu'en une seule requête... L'autre serait du gaspillage de ressources... |
Titre: Re:recherche en boucle dans une table
Posté par: erwinol le le 04-01-2004 a 17:35:27
| Faire le maximum en SQL quitte à étoffer les conditions !! |
Titre: Re:recherche en boucle dans une table
Posté par: tavman le le 06-01-2004 a 19:46:41
tient bahh tant que j'y suis... vous savez pas comment effectuer une requete dans ce style (je la met en litteral)
'SELECT monchamp FROM user WHERE idnom contient la chaine de caractère "nom" '
?? que la en fait je sais pas trop faire ca... alors si vous pouviez m'aider la dessus ce serait cool... |
Titre: Re:recherche en boucle dans une table
Posté par: erwinol le le 06-01-2004 a 22:32:52
Code:
| SELECT monchamp FROM user WHERE idnom LIKE '%nom%' |
|
Si tu veux un exemple complet
LIKE '[0-9][09]_ABC[^abcdef]'
un mot de 7 lettres 1. un chiffre de 1 à 9 2. le chiffre 1 ou le chiffre 9 3. n'importe quel caractère 4. la lettre A 5. la lettre B 6. la lettre C 7. n'importe quel caractère sauf abcde ou f
% représente une chaîne de caractère (0, 1 ou plusieurs caractères) quelconque.
|
Titre: Re:recherche en boucle dans une table
Posté par: tavman le le 07-01-2004 a 20:25:05
et beh voila... C parfait... ca va me servir a pas mal de choses ca... (moteur de recherche, retrouver l'endroit des post etc).
Super nickel. Merci bcp et bonne année |
Titre: Re:recherche en boucle dans une table
Posté par: erwinol le le 07-01-2004 a 22:23:20
Titre: Re:recherche en boucle dans une table
Posté par: tavman le le 07-01-2004 a 22:42:47
Bon OK alors... j'ai un probleme en fait avec ma requete. la voici :
SELECT user, id_post, id_mess FROM messages WHERE id_post = 'partie0,0,0,0' AND id_mess = '0' OR id_post = 'partie0,0,0,1' AND id_mess = '0' ....... OR id_post = 'partie0,0,0,9' AND id_mess = '0' OR id_post = 'partie0,0,0,10' AND id_mess = '0'
Moi ce que je veut faire, c'est selectionner TOUS les champs de texte dont le id_post est partie0,0,0,0 a partie0,0,0,10 ET ou id_mess = 0.
et en fait il me selectionne qu'un seul ou (qui correspond a 'partie0,0,0,0' en fait...) alors que dans ma table j'ai bien tout jusqu'a 5 minimum...
Bref : A L'AIDE je suis totalement pommé... |
Titre: Re:recherche en boucle dans une table
Posté par: tavman le le 07-01-2004 a 22:58:02
Nan bah en fait C bon : le probleme venait po de la...
merci kan meme :) |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|