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

¿Cómo hacer que MySQL sea consciente de los caracteres de varios bytes en LIKE y REGEXP?

EDITADO para incorporar una solución a las críticas válidas

Usa el HEX() función para convertir sus bytes en hexadecimal y luego usa RLIKE en eso, por ejemplo:

select * from mytable
where hex(ipa) rlike concat('(..)*', hex('needle'), '(..)*'); -- looking for 'needle' in haystack, but maintaining hex-pair alignment.

Los caracteres unicode impares se representan de manera consistente en sus valores hexadecimales, por lo que está buscando caracteres estándar 0-9A-F.

Esto también funciona para columnas "normales", simplemente no lo necesita.

PD. El punto de @Kieren (válido) abordado usando rlike para hacer cumplir los pares de caracteres