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

17 hervorragende Webdesigns, sorgfältig von Startups entwickelt

Startups überraschen uns oft mit ihren unkonventi...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.25

Es gibt zwei Arten von MySQL-Installationsdateien...

Mysql gibt die Methode zur Datumsbereichsextraktion an

Bei der Datenbankoperation ist der Umgang mit Dat...

Verständnis für Webdesign-Layout

<br />Hier ergibt sich ein Widerspruch: In k...

Best Practices-Handbuch für partitionierte MySQL-Tabellen

Vorwort: Partitionierung ist ein Tabellenentwurfs...

CSS3-Zeitleistenanimation

Ergebnisse erzielen html <h2>CSS3-Zeitleist...

Vue ElementUI implementiert einen asynchronen Ladebaum

In diesem Artikelbeispiel wird der spezifische Co...

Lösung zur Schnittstellenverformung beim Einstellen der Frameset-Höhe

Derzeit habe ich ein Projekt erstellt, die Schnitt...

Tutorial zur Verwendung des Frameset-Tags in HTML

Frameset-Seiten unterscheiden sich etwas von norm...

Spezifische Verwendung der MySQL-Segmentierungsfunktion substring()

Es gibt vier wichtige MySQL-Zeichenfolgenabfangfu...

Lösung für das Fehlen einer chinesischen Eingabemethode in Ubuntu

Es gibt keine Lösung für die chinesische Eingabem...

So stellen Sie Tomcat stapelweise mit Ansible bereit

1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...

Anwendung schöner Stylesheets bei der Erstellung von XHTML+CSS-Webseiten

Dies ist ein Artikel, der vor langer Zeit geschrie...