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

Cómo MySQL trabaja sin distinción entre mayúsculas y minúsculas y acento insensible en UTF-8

Ya ha intentado utilizar una intercalación que no distingue acentos para su búsqueda y pedido.

http://dev.mysql.com/doc /refman/5.0/en/charset-collation-implementations.html

La cuestión es que tu NAME la columna parece estar almacenada en el conjunto de caracteres latin1 (8 bits). Es por eso que mySQL se queja de ti de esta manera:

  COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Puede obtener los resultados que desea si lo intenta

 WHERE CONVERT(p.NAME USING utf8) LIKE _utf8 '%jose%' COLLATE utf8_general_ci;

Pero, ¡cuidado!

Cuando usa cualquier tipo de función (en este ejemplo, CONVERTIR) en la columna en una declaración WHERE, derrota los intentos de MySQL de optimizar su búsqueda con índices. Si este proyecto va a crecer (es decir, si tendrá muchas filas en sus tablas), necesita almacenar sus datos en formato utf8, no en latin1. (Probablemente ya sepa que su LIKE '%whatever%' el término de búsqueda también anula la indexación de MySQL).