Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL sélectionne la chaîne UTF-8 avec '=' mais pas avec 'LIKE'

Après avoir vu la réponse de Marcus Adams, j'ai réalisé que la fonction REPLACE pouvait être la solution à ce problème, bien qu'il n'ait pas mentionné cette fonction.

Comme je n'ai que deux caractères de combinaison différents (aigu et tilde), combinés avec d'autres caractères ASCII, par exemple j avec tilde, j avec aigu, m avec tilde, s avec tilde, etc. Je dois juste remplacer ces deux caractères lors de l'utilisation de LIKE.

Après avoir cherché dans le manuel, j'ai découvert la fonction UNHEX qui m'a aidé à représenter correctement les caractères combinés seuls dans la requête pour les supprimer.

Le tilde de combinaison est représenté par CC83 en code HEX et l'aigu est représenté par CC81 en HEX.

Donc, la requête qui résout mon problème est celle-ci.

SELECT word, REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "")
FROM oldword WHERE REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "") 
LIKE 'hua%';`