Heim >Datenbank >MySQL-Tutorial >Wie behebt man den MySQL-Fehler „Illegal Mix of Collations'?

Wie behebt man den MySQL-Fehler „Illegal Mix of Collations'?

DDD
DDDOriginal
2025-01-10 19:41:47335Durchsuche

How to Fix MySQL's

Fehlerbehebung beim MySQL-Fehler „Illegal Mix of Collations“

Große Datenmengen können manchmal den frustrierenden MySQL-Fehler „Illegal mix of collations“ auslösen. Dies geschieht beim Vergleich von Daten mit inkonsistenten Zeichensätzen und Sortierungen.

Das Problem

Bedenken Sie diese Abfrage:

<code class="language-sql">SELECT COUNT(*) AS num
FROM keywords
WHERE campaignId = '12'
AND LCASE(keyword) = 'hello again 昔 ã‹ã‚‰ ã‚ã‚‹ å ´æ‰€'</code>

Dies könnte folgendes ergeben:

<code>Error Number: 1267
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='</code>

Lösungen: String-Escaping vs. Codierungsänderungen

Es gibt zwei Hauptansätze, um dieses Problem zu beheben: die problematische Zeichenfolge zu maskieren oder die Datenbank- und Tabellenkodierungen zu ändern.

Methode 1: String-Escape (vorübergehende Korrektur)

Durch das Escapezeichen der Zeichenfolge kann der Fehler vorübergehend vermieden werden:

<code class="language-sql">SET collation_connection = 'utf8_general_ci';

SELECT COUNT(*) AS num
FROM keywords
WHERE campaignId = '12'
AND LCASE(keyword) = 'hello again \"昔 ã‹ã‚‰ ã‚ã‚‹ å ´æ‰€\"'</code>

Dies ist jedoch eine Pflasterlösung und könnte in Zukunft zu Problemen führen.

Methode 2: Datenbank- und Tabellenkodierungen ändern (dauerhafte Lösung)

Für eine dauerhafte Lösung standardisieren Sie Ihre Datenbank und Tabellen, um utf8_general_ci:

zu verwenden
<code class="language-sql">ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;</code>

Durch die Vereinheitlichung Ihrer Verbindungssortierung und Datenbank-/Tabellenkodierungen auf utf8_general_ci stellen Sie eine konsistente Datenverarbeitung sicher und beseitigen Sortierkonflikte. Dies ist die empfohlene Vorgehensweise.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler „Illegal Mix of Collations'?. 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