LIKE avec casse ?

Résolu
Signaler
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Je fais une requête dans une base MySQL avec LIKE car le mot cherché ($tb) est au milieu d'une phrase (donc impossible de faire "="). Toutefois j'aimerai que la recherche ne se fasse que sur ce mot lorsqu'il est écrit entièrement en majuscules ($tb est déjà tout en majuscules) ce qui semble impossible avec LIKE puisqu'il ne tient pas compte de la casse. Une idée ?

$req = mysql_query("SELECT url, description from annuaire_tbl WHERE description LIKE '%".$tb."%' Order by url Asc limit 0,15 ") or die ("Erreur de requête ".mysql_error());

10 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



bah il te faut un champ binary ou blob dans ta base.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
oki doki! Alors, une petite recherche me ramene sur ce qu'a dit Anthomicro: BINARY!

SELECT url, description from annuaire_tbl WHERE description LIKE BINARY '%".$tb."%' Order by url Asc limit 0,15

J'ai teste chez moi dans une phrase et ca marche! J'aurai appris un truc au passage, hehe

Enjoy, ++
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
Trouvé sur http://dev.mysql.com/doc/mysql/fr/case-sensitivity.html:


Par défaut, les recherchez de MySQL ne sont pas sensibles à la casse [...] Cela signifie que si vous recherchez avec
nom_colonne LIKE 'a%'
, vous aurez toutes les valeurs de la colonne qui commencent par un
A
ou un
a
. Si vous voulez que cette recherche soit sensible à la casse, utilisez par exemple
INSTR(nom_colonne, "A")=1
pour vérifier un préfixe. Utilisez
STRCMP(nom_colonne, "A") = 0
si la valeur de la colonne doit être exactement
"A"
.

Enjoy, ++
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Ces deux solutions ne semblent pas tenir compte du fait que la recherche se fait sur un mot dans une phrase
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
Et si tu te basais sur l'une ou l'autre de ces solutions pour chercher a resoudre ton probleme plutot que d'attendre la solution cle en main?!

Enjoy, ++
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Il y a un bug sur ce forum, ça fait deux fois que mon message est coupé !
Donc je disais :
Ces deux solutions ne semblent pas tenir compte du fait que la recherche se fait sur un mot dans une phrase. C'est le seul mot en majuscules. Ces deux solutions ne font que chercher le mot (avec casse) dans la base (casse gérée soit par la requête précisée soit par la forme des données dans la colonne la BD). Mais comme le mot est dans une phrase il n'arrive pas à le trouver. J'ai regardé sur dev.mysql et Nexen et c'est ce que j'ai compris. En essayant ça ne fonctionne d'ailleur pas.
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Qu'en terme galants ces choses là sont dites
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Et encore un message tronqué ! C'est exaspérant !
Je disais :

Qu'en termes galants ces choses là sont dites Malik7934 !
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Merci à tous les deux, ça marche !
Je comprends pas trop pourquoi d'ailleur puisque c'est déjà ce que j'avais fait suite à la réponse d'Anthomicro et ça n'avais pas fonctionné ! Une erreur de frappe je suppose ?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
non j'ai dû me gourrer, LIKE BINARY fonctionne ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>