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

Solución de problemas de combinación ilegal de errores de intercalación en mysql

Esto generalmente se produce al comparar dos cadenas de intercalación incompatible o al intentar seleccionar datos de diferente intercalación en una columna combinada.

La cláusula COLLATE le permite especificar la intercalación utilizada en la consulta.

Por ejemplo, el siguiente WHERE cláusula siempre dará el error que publicaste:

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

Su solución es especificar una intercalación compartida para las dos columnas dentro de la consulta. Aquí hay un ejemplo que usa COLLATE cláusula:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Otra opción es usar el BINARY operador:

BINARY str es la abreviatura de CAST(str COMO BINARIO).

Su solución podría verse así:

SELECT * FROM table WHERE BINARY a = BINARY b;

o,

SELECT * FROM table ORDER BY BINARY a;