Bonjour à tous,

Je recherche dans ma base de donné un mot accentué, par exemple :

SELECT * FROM attributes WHERE name = 'Truffé' AND type = 'term'

Or, quand je tape cette recherche directement dans PhpMyAdmin, il me sort comme résultat :

id name slug description type ref_type
84 Truffe truffe NULL term all
85 Truffé truffe NULL term all

Alors que je voudrais qu'il ne me ressorte que :

85 Truffé truffe NULL term all

En gros ma recherche est insensible aux accents, alors que je voudrais qu'elle soit sensible aux accents.
Une idée ?

Merci d'avance.

(Je précise que ma table est en utf8_general_ci)

5 réponses


Bahamut45
Réponse acceptée

Bonsoir,

SELECT * FROM attributes WHERE name = 'Truffé' AND type = 'term' COLLATE utf8_bin

Le collate va te permettre d'avoir ta requête avec les accents sensitifs.

Cordialement

Typhon
Auteur
Réponse acceptée

Le COLLATE utf8_bin ne marche pas =S

Le LIKE égallement, dans tout les cas sa me ressort toujours le deux résultat, "truffé" avec accent et sans accent =(

Les deux combiné non plus

SELECT id, name, slug, type FROM by_attributes WHERE `name` LIKE "Truffé" AND `type`="term" COLLATE utf8_bin

Sa me ressort toujours les deux lignes.

Autant pour moi, désolé, il faut mettre le COLLATE, derrière la condition voulu.

sa marche bien en faisait

SELECT id, name, slug, type FROM by_attributes WHERE `name`="Truffé" COLLATE utf8_bin AND `type`="term"
Typhon
Auteur

Pas d'idée ? =(

Tu as essayé avec un LIKE?

Typhon
Auteur

Nan, mais je pense que sa demande beaucoup plus de ressource ?

Et en général c'est pour chercher un mot dans un texte, or je cherche juste une correspondance d'un mot dans un autre champ contenant uniquement un mot.

Enfin je vais essayé ;)