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

¿Existe una intercalación utf8_unicode_cs?

Me encontré con el mismo problema y después de buscar en Google, parece que MySQL no lo incluye. Para "simularlo", como dices tú,

1) Para garantizar la distinción entre mayúsculas y minúsculas en la base de datos:establezca la columna de la tabla en utf8_bin colación
Esto permite:

  • SELECCIONES estrictas:SELECT "Joe" NO devolverá filas con "joe" / "joE" / "jOe" / etc
  • Índice ÚNICO estricto:una columna con un índice ÚNICO tratará las diferencias entre mayúsculas y minúsculas como valores diferentes. Por ejemplo, si se usa una intercalación utf8_unicode_ci, insertar "Joe" en una tabla que ya tiene "joe" generará un error de "Clave duplicada". Si se usa ut8_bin, insertar "Joe" funcionará bien.

2) Para obtener el orden correcto en los resultados:agregue la intercalación a la consulta SQL:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci