Heim >Datenbank >MySQL-Tutorial >Wie behebt man den MySQL-Fehler „Illegal Mix of Collations'?
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
:
<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!