Fehlerbehebung beim Fehler „Illegal Mix of Collations“ in MySQL
Wenn in MySQL der Fehler „Illegal Mix of Collations“ auftritt, wird dies häufig angezeigt eine Inkompatibilität der Sortierungen beim Vergleichen oder Kombinieren von Zeichenfolgen. Dies tritt auf, wenn Daten mit unterschiedlichen Zeichensätzen und Sortierregeln gemischt werden, was zu dem Fehler führt.
Um dieses Problem zu beheben, muss eine gemeinsame Sortierung für die verglichenen oder ausgewählten Spalten angegeben werden. Dies kann mithilfe der COLLATE-Klausel erreicht werden, mit der Sie die in einer Abfrage zu verwendende Sortierung angeben können.
Um den Fehler im gegebenen Szenario beispielsweise zu beheben, könnten Sie die folgende Abfrage verwenden:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Diese Abfrage stellt sicher, dass die Schlüsselspalte mithilfe der Sortierung „latin1_general_ci“ sortiert wird und mit der Sortierung der Tabelle übereinstimmt.
Eine weitere Option ist um den BINARY-Operator zu verwenden, der die Zeichenfolgen vor dem Vergleich in ein Binärformat umwandelt. Dies ist eine Abkürzung für CAST(str AS BINARY) und kann wie folgt verwendet werden:
SELECT * FROM table WHERE BINARY a = BINARY b;
Durch die Umwandlung der Werte in Binärwerte werden alle Unterschiede in den Sortierregeln ignoriert, was einen korrekten Vergleich ermöglicht.
Es ist wichtig zu beachten, dass die Umwandlung von Werten in Binärwerte dazu führen kann, dass alle Indizes für diese Spalten ignoriert werden. Ausführlichere Informationen finden Sie in der dringend empfohlenen Antwort von eggyal zu diesem speziellen Problem.
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „Illegal Mix of Collations'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!