Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehlerbehebung Unzulässige Mischung von Kollatierungsfehlern in mysql

Dies wird im Allgemeinen durch den Vergleich zweier Zeichenfolgen mit inkompatibler Sortierung oder durch den Versuch verursacht, Daten mit unterschiedlicher Sortierung in einer kombinierten Spalte auszuwählen.

Die Klausel COLLATE ermöglicht es Ihnen, die in der Abfrage verwendete Sortierung anzugeben.

Zum Beispiel das folgende WHERE -Klausel gibt immer den von Ihnen geposteten Fehler aus:

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

Ihre Lösung besteht darin, eine gemeinsame Sortierung für die beiden Spalten in der Abfrage anzugeben. Hier ist ein Beispiel, das COLLATE verwendet Klausel:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Eine andere Möglichkeit ist die Verwendung des BINARY Betreiber:

BINARY str ist die Abkürzung für CAST(str AS BINARY).

Ihre Lösung könnte etwa so aussehen:

SELECT * FROM table WHERE BINARY a = BINARY b;

oder,

SELECT * FROM table ORDER BY BINARY a;