Lösung für abnormale Verbindungstabellen, die durch inkonsistente MySQL-Zeichensätze verursacht werden

Lösung für abnormale Verbindungstabellen, die durch inkonsistente MySQL-Zeichensätze verursacht werden

Wenn Sie eine einfache Tabellenabfrage wie folgt durchführen, wird direkt eine Fehlermeldung angezeigt. Es stellt sich heraus, dass der Zeichensatz inkonsistent ist. Dieser Artikel beschreibt den Zeichensatztyp von MySQL und die Lösung für das folgende Problem

Wählen Sie a.id, b.id aus tt als a, t2 als b, wobei a.xx = b.xx

-- Unzulässige Mischung von Sortierungen (utf8mb4_unicode_ci,IMPLICIT) und (utf8mb4_general_ci,IMPLICIT) für Operation '='

1. Lösung

Schauen wir uns zunächst die Lösung für das obige Problem an. Am einfachsten ist es, die Zeichensätze der beiden Tabellen zu vereinheitlichen. Entweder sind beide utf8mb4_general_ci oder beide sind utf8mb4_unicode_ci. Durch die Vereinheitlichung wird dieses Problem natürlich gelöst. Was ist, wenn ich den Zeichensatz der Tabelle nicht ändern möchte? Schließlich ist die Durchführung dieser Art von Vorgang in einer Produktionsumgebung immer noch riskant. Hier ist eine weniger elegante Lösung.

Geben Sie den Zeichensatz nach dem Feld an (Sie können alle als utf8mb4_general_ci oder alle als utf8mb4_unicode_ci angeben, verarbeiten Sie sie einfach entsprechend Ihren tatsächlichen Anforderungen).

wähle a.id, b.id aus tt als a, t2 als b, wobei a.xx = b.xx, sortiere utf8mb4_general_ci

2. MySQL-Zeichensatz

Zeichensatz

Für Lebenspartner sind unsere gemeinsamen Zeichensätze im Allgemeinen die folgenden drei

  • gbk: zwei Bytes
  • utf8: drei Bytes
  • utf8mb4: vier Bytes

MySQL unterstützt tatsächlich mehr, was über „show charset“ abgefragt werden kann.

Überprüfungsregeln

In der Praxis sehen wir häufig Folgendes

  • utf8_bin
  • utf8mb4_unicode_ci
  • utf8mb4_general_ci
  • latin1_general_cs

Natürlich können wir die unterstützten Validierungsregeln auch über die Show-Collation anzeigen.

Bitte beachten Sie den obigen Wortlaut

  • ci: Groß-/Kleinschreibung nicht beachtende Abkürzung ist nicht groß-/kleinschreibungsempfindlich
  • cs: Groß-/Kleinschreibung beachten
  • bin: Binärspeicher, Groß-/Kleinschreibung beachten

Dies ist das Ende dieses Artikels über die Behebung von Anomalien beim Verbinden von Tabellen, die durch inkonsistente MySQL-Zeichensätze verursacht werden. Weitere verwandte Inhalte zu Anomalien beim Verbinden von Tabellen, die durch inkonsistente MySQL-Zeichensätze verursacht werden, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So ändern und zeigen Sie den Zeichensatz von MySql-Tabellen, -Feldern und -Bibliotheken an
  • MySQL-Zeichensatz und Sortierregeln (MySQL-Sortierungssatz)
  • So ändern Sie die Datenbankkodierung (Datenbankzeichensatz) und die Zeichenkodierung der Tabelle in MySQL
  • Detaillierte Analyse der MySQL-Zeichensatzeinstellungen
  • Detaillierte Analyse zweier Methoden zum Ändern des MySQL-Standardzeichensatzes
  • Lösen des Mysql5-Zeichensatzkodierungsproblems

<<:  Eine kurze Diskussion über den JavaScript-Bereich

>>:  Zwei spezielle Werte in CSS werden verwendet, um die Vererbungs- und Initialisierungsmethoden der Kaskade zu steuern

Artikel empfehlen

Einführung in Linux-Umgebungsvariablen und Prozessadressraum

Inhaltsverzeichnis Linux-Umgebungsvariablen und P...

Implementieren Sie eine einfache Suchmaschine auf Basis von MySQL

Inhaltsverzeichnis Implementierung einer Suchmasc...

JavaScript zum Erzielen des JD.com-Blitzverkaufseffekts

In diesem Artikel wird der spezifische JavaScript...

Einführung in die Verwendung der unbestimmten Eigenschaft des Kontrollkästchens

Wenn wir das Dialogfeld „Ordnereigenschaften“ in W...

Vue verwendet Element-UI, um die Menünavigation zu implementieren

In diesem Artikel wird der spezifische Code von V...

Installieren Sie Mininet aus dem Quellcode auf Ubuntu 16.04

Mininet Mininet ist eine leichtgewichtige, softwa...

Allgemeine Schreibbeispiele für MySQL- und Oracle-Batch-Insert-SQL

Inhaltsverzeichnis Zum Beispiel: Allgemeines Schr...

Drei Möglichkeiten, das horizontale Div-Layout auf beiden Seiten auszurichten

In diesem Artikel werden hauptsächlich drei Metho...

Vue realisiert den gesamten Prozess der Slider-Drag-Verifizierungsfunktion

Rendern Definieren Sie das Skelett, schreiben Sie...

Detaillierte Erläuterung des Falls des JavaScript-Upload-Dateilimitparameters

Projektszenario: 1. Einschränkungen beim Hochlade...

Kontext und Eigenschaften von React erklärt

Inhaltsverzeichnis 1. Kontext 1. Anwendungsszenar...