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

Beispiele für die Verwendung von HTML-Metadaten

Beispielverwendung Code kopieren Der Code lautet w...

So reduzieren Sie die Speicher- und CPU-Auslastung von Webseiten

<br />Einige Webseiten sehen nicht groß aus,...

Detaillierte Erklärung von react setState

Inhaltsverzeichnis Ist setState synchron oder asy...

Beispielcode für HTML-Layout links und rechts

CSS: Code kopieren Der Code lautet wie folgt: html...

Zusammenfassung der Anwendungspraxis für Docker-Container des Node.js-Dienstes

In diesem Artikel wird die Verwendung und Install...

Analysieren Sie das Arbeitsprinzip von Tomcat

SpringBoot ist wie eine riesige Python, die sich ...

Lösung für das Verschwinden des MySql-Dienstes aus unbekannten Gründen

Lösung für das Verschwinden des MySql-Dienstes au...

Implementierung der Nginx-Flusskontrolle und Zugriffskontrolle

Nginx-Verkehrskontrolle Die Ratenbegrenzung ist e...

CSS-Implementierungscode für die Textausrichtung

Beim Erstellen von Formularen kommt es häufig vor...

So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

In der Front-End-Entwicklung gibt es viele Möglic...