Les Allergies
Alimentaires
Posez votre question Signaler

[SQL] 'Like' trop large! [Résolu]

Leskate 80Messages postés 11 juin 2007Date d'inscription - Dernière réponse le 26 mai 2008 à 13:45
Bonjour,
comment pourrais restreindre les recherches effectuer par ma requete :
"select id_matiere from $nomtable where ids_eleves like '%$id%' And (Date>='$du' and Date<='$au') ";

Dans la base, j'ai, dans le champs ids_eleves, des information du genre "069.005.104", qui représente une série d'identifiant.
Cependant, lorsque je recherche les matière suivies par l'étudiant '9', je récupère aussi ceux de tous les autres étudiants ayant un '9' dans le id.
Il faudrait donc dire au "Like", qu'avant l'id recherché, il ne peut y avoir que '.00', '.0' ou '.' (précédé d'autre id) et après, il ne peut y avoir que '.' (suivie d'autre id).
Y a-t-il un moyen de faire cela simplement?
Merci d'avance!!
Lire la suite 

[SQL] 'Like' trop large »

5 réponses
Réponse
+0
moins plus
bonjour :)

tu as essayé ceci :

"select id_matiere from $nomtable where ids_eleves like '$id' And (Date>='$du' and Date<='$au') ";


Juste enlever les % autour de id car ça lui dit tout ce qu'il y a devant id et tout ce qu'il y a après
Leskate- 26 mai 2008 à 13:11
Je veux bien mais... si je lui demande LIKE '$id'.
Si mon id est 13 et que dans ma liste j'ai 056.013.096, il ne me renvois pas le tuple !

Ca ne marche pas en gros...
Ajouter un commentaire
Réponse
+0
moins plus
J'ai résolu partiellement le probleme :
"select Distinct id_matiere from $nomtable 
							where 
							(
							ids_eleves like '00$id.%' 
							or ids_eleves like '0$id.%' 
							or ids_eleves like '$id.%' 
							or ids_eleves like '%.00$id' 
							or ids_eleves like '%.0$id' 
							or ids_eleves like '%.$id' 
							or ids_eleves like '%.$id.%' 
							or ids_eleves like '%.0$id.%' 
							or ids_eleves like '%.00$id.%' 
							or ids_eleves like '$id' 
							or ids_eleves like '0$id' 
							or ids_eleves like '00$id' 
							)
							And (Date>='$du' and Date<='$au') ";


Mais c'est on ne peux plus modulable et compréhensible :\
Enfin bon.. ca marche -_-

Je ne met pas 'Résolu', au cas ou vous auriez une meilleur solution a me proposer.
macgawel- 26 mai 2008 à 13:26
Bonjour.

Ton "ids_eleves", il a un format défini ?
Genre, c'est une suite d'ID sur trois caractères séparés par des points ?
Dans l'affirmative, c'est relativement simple : tu prends $id, tu le complète avec des "0" devant pour arriver à trois caractères et tu fais un like '%$id_complete%'
Leskate- 26 mai 2008 à 13:45
Réponse très simple en effet!
Je n'y avais meme pas pensé -_-

Merci a toi! Problème résolu :D
Ajouter un commentaire
Ce document intitulé « [SQL] 'Like' trop large! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?