Comparer 2 chaines de caractères en SQL
Fermé
waxor
Messages postés
51
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
19 août 2012
-
19 août 2012 à 09:21
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 22 août 2012 à 18:16
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 22 août 2012 à 18:16
A voir également:
- Sql comparaison chaine de caractere
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Chaine tnt gratuite sur mobile - Guide
7 réponses
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
19 août 2012 à 11:26
19 août 2012 à 11:26
Re
Alors pour un de mes sites g procedé comme ca :
J'ai supprimé tout les mots de 2 lettres de la recherche puis j'ai mis les mots restant de la recherche dans un tableau .
J'ai ensuite fais une requete insert dans une table temporaire du resultat des recherches puis a lafin je me suis servi de ma table temporaire avec les bon titre pour afficher mes liens :
Pour reprendre ton exemple :
Recherche :
Élections de 2012
Résultats :
Élections présidentielles 2012
Les élections législatives de 2012
2012 : Les élections vont elles changer les choses
1er :
Tu fais un explode avec ESPACE :
Ensuite tu analyse ton tableau de resultat :
Tu fais une boucle sur ton tableau :
Puis :
If strlen($[Recherche1]) > 2 then
tu fais un insert into table_temp ...... values ( select tes champs from ta table where Titre like % $Tavariable %)
Puis tu te sert de ta table temporaire pour afficher tes liens
J'espere etre claire dans la facon de procede ;)
Alors pour un de mes sites g procedé comme ca :
J'ai supprimé tout les mots de 2 lettres de la recherche puis j'ai mis les mots restant de la recherche dans un tableau .
J'ai ensuite fais une requete insert dans une table temporaire du resultat des recherches puis a lafin je me suis servi de ma table temporaire avec les bon titre pour afficher mes liens :
Pour reprendre ton exemple :
Recherche :
Élections de 2012
Résultats :
Élections présidentielles 2012
Les élections législatives de 2012
2012 : Les élections vont elles changer les choses
1er :
Tu fais un explode avec ESPACE :
Ensuite tu analyse ton tableau de resultat :
Tu fais une boucle sur ton tableau :
Puis :
If strlen($[Recherche1]) > 2 then
tu fais un insert into table_temp ...... values ( select tes champs from ta table where Titre like % $Tavariable %)
Puis tu te sert de ta table temporaire pour afficher tes liens
J'espere etre claire dans la facon de procede ;)
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
Modifié par moiced59 le 19/08/2012 à 10:39
Modifié par moiced59 le 19/08/2012 à 10:39
Bonjour
Regarde du cote de la clause like qui va correspondre exactement a ce que tu demande .
Regarde du cote de la clause like qui va correspondre exactement a ce que tu demande .
waxor
Messages postés
51
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
19 août 2012
2
19 août 2012 à 11:07
19 août 2012 à 11:07
Tu penses que la clause LIKE peut analyser les mots séparément et pas comme une chaine brut ou tout doit être dans le même ordre ? Ou peu t'être que je dois stocker ma recherche dans un array avec chaque mots séparés, mais dans ce cas SQL peu t'il parcourir un array PHP dans son ensemble sans avoir à préciser $array[1], $array[2], $array[3] ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 août 2012 à 14:31
21 août 2012 à 14:31
et si tu fait un and avec like
"SELECT ...... WHERE ton_champ_titre LIKE '%".$mot1."%' AND LIKE '%".$mot2."%' AND '%".$mot3."%'";
"SELECT ...... WHERE ton_champ_titre LIKE '%".$mot1."%' AND LIKE '%".$mot2."%' AND '%".$mot3."%'";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
21 août 2012 à 19:54
21 août 2012 à 19:54
pas and mais or ;) et faut remettre le champ
"SELECT ...... WHERE ton_champ_titre LIKE '%".$mot1."%' or ton_champ_titre LIKE '%".$mot2."%' ......
"SELECT ...... WHERE ton_champ_titre LIKE '%".$mot1."%' or ton_champ_titre LIKE '%".$mot2."%' ......
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 août 2012 à 23:01
21 août 2012 à 23:01
il veut ressortir ceux dont l'ensemble des mots de la recherche se trouvent dedans
donc il faut bien AND à mon avis
d'accord pour l'oubli du champ dans chaque LIKE
donc il faut bien AND à mon avis
d'accord pour l'oubli du champ dans chaque LIKE
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
22 août 2012 à 18:16
22 août 2012 à 18:16
Bah rien ne sert de séparer les mots si il fait un AND ????
Ceci dis il ne reagit meme plus dc ca sert a rien ;)
Ceci dis il ne reagit meme plus dc ca sert a rien ;)