Heim >Datenbank >MySQL-Tutorial >Wie kann der MySQL-Fehler „Illegal Mix of Collations' (latin1_swedish_ci und utf8_general_ci) behoben werden?

Wie kann der MySQL-Fehler „Illegal Mix of Collations' (latin1_swedish_ci und utf8_general_ci) behoben werden?

Susan Sarandon
Susan SarandonOriginal
2025-01-10 19:51:43532Durchsuche

How to Solve MySQL's Illegal Mix of Collations Error (latin1_swedish_ci and utf8_general_ci)?

Details und Lösungen zu MySQL-Zeichensatzkonfliktfehlern

Bei der Verarbeitung großer Datenmengen kann in MySQL der folgende Fehler auftreten:

<code>错误号:1267

操作“=”的字符集校对(latin1_swedish_ci,隐式)和(utf8_general_ci,可强制)不匹配</code>

Dieser Fehler tritt auf, wenn MySQL versucht, Daten mit unterschiedlichen Zeichensatzsortierungen zu vergleichen, was zu einer Inkompatibilität führt. In diesem Fall tritt der Fehler während einer Abfrage auf, die die Spalte „keyword“ (unter der Annahme einer Sortierung mit „latin1_swedish_ci“) mit einem Zeichenfolgenliteral vergleicht, das möglicherweise mit „utf8_general_ci“ sortiert ist.

Zeichensatzkonflikte lösen

Um diesen Fehler zu beheben, können Sie ein paar Dinge ausprobieren:

  1. Verbindungssortierung festlegen: Führen Sie die folgende Abfrage aus, um die Verbindungssortierung auf „utf8_general_ci“ festzulegen:
<code>SET collation_connection = 'utf8_general_ci';</code>
  1. Datenbank- und Tabellenkodierungen ändern: Zeichensätze und Sortierungen der betroffenen Datenbanken und Tabellen konvertieren:
<code>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>
  1. Escape-Strings: In einigen Fällen können Sie versuchen, ein String-Literal mit Escapezeichen zu versehen, um sicherzustellen, dass die richtige Sortierung verwendet wird. Sie könnten beispielsweise versuchen, die Zeichenfolge in einfache Anführungszeichen (') oder doppelte Anführungszeichen (") zu setzen, um die Verkettungssortierung zu erzwingen.

Weitere Hinweise

MySQL führt manchmal ohne ersichtlichen Grund die Sortierung „latin1_swedish_ci“ ein. Um dieses Problem in Zukunft zu vermeiden, definieren Sie explizit Zeichensätze und Sortierungen für alle Datenbankobjekte, einschließlich Tabellen, Spalten und gespeicherter Prozeduren. Sie können solche Fehler vermeiden, indem Sie sicherstellen, dass alle Daten konsistent erfasst werden.

Das obige ist der detaillierte Inhalt vonWie kann der MySQL-Fehler „Illegal Mix of Collations' (latin1_swedish_ci und utf8_general_ci) 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