Fehlerbehebung beim Fehler „Ungültige Mischung von Kollatierungen“ in MySQL
Beim Auftreten des Fehlers „Ungültige Mischung von Kollatierungen“ in MySQL während der Ausführung einer gespeicherten Prozedur , ist es ratsam, sich mit den zugrunde liegenden Ursachen zu befassen.
Sortierung spielt in MySQL eine entscheidende Rolle und bestimmt den Charakter Satz- und Sortierregeln. Eine Nichtübereinstimmung der Sortierungen zwischen einer Tabelle und einer Spalte, auf die in der WHERE-Klausel verwiesen wird, kann zu diesem Fehler führen.
Um das Problem zu beheben, geben Sie eine gemeinsame Sortierung für beide am Vergleich beteiligten Spalten an. Mit der COLLATE-Klausel können Sie die Standardsortierung für einen bestimmten Ausdruck überschreiben. Zum Beispiel:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
Diese Abfrage löst immer noch den Fehler aus, da sie Zeichenfolgen mit unterschiedlichen Sortierungen vergleicht. Stattdessen sollten Sie die gemeinsame Sortierung explizit angeben:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Alternativ kann der BINARY-Operator verwendet werden, um einen binären Vergleich zu erzwingen und dabei Sortierungen zu ignorieren:
SELECT * FROM table WHERE BINARY a = BINARY b;
SELECT * FROM table ORDER BY BINARY a;
Beachten Sie das Das Umwandeln von Spalten zum Vergleich, wie im Fall des BINARY-Operators, kann sich auf die Indizierungsleistung auswirken. Weitere Einblicke in MySQL-Sortierungen finden Sie in der umfassenden Antwort von eggyal.
Das obige ist der detaillierte Inhalt vonWie kann der MySQL-Fehler „Illegale Kombination von Kollatierungen' behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!