Page 1 sur 1

requête LIKE

Posté : 28 mars 2007, 15:24
par mcorgnet
Bonchhhour !

vala, toujours dans mes requêtes pour la recherche dans mysql, en voici une qui ne me ressort rien, alors que je devrais avoir au moins deux résultats :

Code : Tout sélectionner

SELECT PP.Id, PP.Nom, A.Id, A.Titre, DATE_FORMAT(A.DateIns,'%d/%m/%Y'), P.Id, A.UserId, U.FirstName, U.LastName FROM articles A, users U, pages P, applications PP WHERE P.Id = A.pageId AND PP.Id = P.AppliId AND U.Id = A.userId AND 1 = (SELECT !MOD(COUNT(R.Archive), 2) FROM articles_operations R WHERE R.ArticleId = A.Id) AND UPPER( A.Contenu ) LIKE '%BONJOUR%' ORDER BY PP.Id
Par contre, si je vire le UPPER, et que je mets le 'BONJOUR' en minuscules, ça tourne ...

Du coup, je ne sais plus trop comment faire.

Merci à vous.

Posté : 04 avr. 2007, 10:51
par rgz
Si ta table est définie avec l'interclassement utf8_bin, pour faire des recherches en ci (case insensitive), il faut changer l'interclassement dans la requête. Par exemple :

Code : Tout sélectionner

WHERE champs LIKE '%blabla%' COLLATE utf8_general_ci
ref :
http://fashion.hosmoz.net/post/2006/11/ ... -Recherche

Les collations latin1 ont les significations suivantes :
Collation Signification
latin1_bin Binaire, suivant l'encodage latin1
latin1_danish_ci Danois/Norvégien
latin1_general_ci Multilingue
latin1_general_cs Multilingue, sensible à la casse
latin1_german1_ci Allemand DIN-1
latin1_german2_ci Allemand DIN-2
latin1_spanish_ci Espagnol moderne
latin1_swedish_ci Suédois/Finlandais

Les collations ont les caractéristiques suivantes :
Deux jeux de caractères différents ne peuvent pas avoir la même collation.
Chaque jeu de caractère a une collation qui est la collation par défaut. Par exemple, la collation par défaut de latin1 est latin1_swedish_ci.
Il y a une convention pour les noms de collation : elles commencent par le nom du jeu de caractères auquel elles sont associées; elles incluent généralement un nom de langue, et finissent par _ci (case insensitive, insensible à la casse), _cs (case sensitive, sensible à la casse), _bin (binaire), ou _uca (Algorithme Unicode, Unicode Collation Algorithm).
ref :
http://dev.mysql.com/doc/refman/5.0/fr/ ... mysql.html