sql >> Base de Datos >  >> RDS >> Mysql

MySQL selecciona la cadena UTF-8 con '=' pero no con 'LIKE'

Después de ver la respuesta de Marcus Adams, me di cuenta de que la función REEMPLAZAR podría ser la solución para este problema, aunque no mencionó esta función.

Como solo tengo dos caracteres combinados diferentes (agudo y tilde), combinados con otros caracteres ASCII, por ejemplo j con tilde, j con agudo, m con tilde, s con tilde, y así sucesivamente. Solo tengo que reemplazar estos dos caracteres cuando uso LIKE.

Después de buscar en el manual, aprendí sobre la función UNHEX que me ayudó a representar correctamente los caracteres combinados solos en la consulta para eliminarlos.

La tilde de combinación está representada por CC83 en código HEX y el agudo está representado por CC81 en HEX.

Entonces, la consulta que resuelve mi problema es esta.

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