Heim >Datenbank >MySQL-Tutorial >Wie kann der MySQL-Fehler „Illegale Kombination von Kollatierungen' behoben werden?

Wie kann der MySQL-Fehler „Illegale Kombination von Kollatierungen' behoben werden?

DDD
DDDOriginal
2024-12-22 13:37:17655Durchsuche

How to Solve MySQL's

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn