LIKE avec casse ?

Résolu
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005 - 11 juil. 2005 à 00:20
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 11 juil. 2005 à 15:03
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

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 juil. 2005 à 01:38
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>
3
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
11 juil. 2005 à 14:45
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, ++
3
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
11 juil. 2005 à 11: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, ++
0
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 14:14
Ces deux solutions ne semblent pas tenir compte du fait que la recherche se fait sur un mot dans une phrase
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
11 juil. 2005 à 14:19
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, ++
0
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 14:20
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.
0
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 14:22
Qu'en terme galants ces choses là sont dites
0
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 14:23
Et encore un message tronqué ! C'est exaspérant !
Je disais :

Qu'en termes galants ces choses là sont dites Malik7934 !
0
cs_malaysia Messages postés 50 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 15:01
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 ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 juil. 2005 à 15:03
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>
0
Rejoignez-nous