Beispiel für eine erzwungene Konvertierungsmethode für MySQL-Zeichenfolgen

Beispiel für eine erzwungene Konvertierungsmethode für MySQL-Zeichenfolgen

Vorwort

Da die Typen derselben Felder in den beiden Tabellen unterschiedlich sind oder sogar die Kodierungstypen unterschiedlich sind, verwendet die Abfrage den Index nicht und die Geschwindigkeit ist sehr langsam.

Zwangsversetzung

Lassen Sie mich Ihnen ein direktes Beispiel geben:

Die Tabellen-ID A ist vom Typ int. Die Tabellen-ID B ist vom Typ char.

Wenn Sie in int konvertieren möchten, ist es signiert

Wenn Sie in char konvertieren möchten, dann char

Hinweis: Der zu konvertierende Typ muss das Feld der Tabelle nach dem Left Join sein, sonst wird der Index nicht verwendet.

Da die Feldtypen der gemeinsamen Tabelle inkonsistent sind, wird der Index nicht verwendet.

wähle t.* von A tleft verbinde B t1 auf t.id = t1.id

Der erste Konvertierungstyp

wähle t.* von A tleft, verbinde B t1 auf t.id = cast(t1.id als signiert)

Der zweite Konvertierungstyp

wähle t.* von A tleft, verbinde B t1 auf t.id = konvertiere(t1.id, signiert)

ab=fg

Die beiden Felder b und g haben jedoch unterschiedliche Sortierregeln. b ist utf8_general_ci und g ist utf8_unicode_ci. Wenn sie gleich sind, meldet SQL einen Fehler. Also bat ich meinen Vorgesetzten um Hilfe. So schreibt man es:

KONVERTIEREN (ab USING utf8) COLLATE utf8_unicode_ci = fg

Wenn die Tabelle nicht indiziert ist, werden die Felder in der Abfrage transformiert, zum Beispiel:

Wählen Sie a.* aus einem
LINKS JOIN (SELECT b.*, CONVERT (ab USING utf8) COLLATE utf8_unicode_ci = fg FROM b) a ON ab = fg

CONVERT(Benutzer-ID USING utf8) COLLATE utf8_general_ci als Benutzer-ID

Dies ist das Ende dieses Artikels über die MySQL-Zeichenfolgenkonvertierung. Weitere Informationen zur MySQL-Zeichenfolgenkonvertierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der MySQL-Datumszeichenfolgen-Zeitstempelkonvertierung
  • Konvertieren Sie den Bildwert GIF, JPG oder MySQL Longblob oder Blob-Feld in einen hexadezimalen String in PHP
  • Beispiel für die Konvertierung der MySQL-Zeichenfolge „123“ in die Zahl 123

<<:  Detaillierte Erläuterung der DOM-Stileinstellungen in vier Reaktionskomponenten

>>:  Docker implementiert das erneute Taggen und Löschen des Images des ursprünglichen Tags

Artikel empfehlen

Installieren Sie eine virtuelle Python-Umgebung in Ubuntu 18.04

Nur als Referenz für Python-Entwickler, die Ubunt...

Galeriefunktion durch natives Js implementiert

Inhaltsverzeichnis Der erste Der Zweite Native Js...

Beispielcode zur Implementierung des Seiten-Cachings im Vue-Mobilprojekt

Hintergrund Auf Mobilgeräten ist das Caching zwis...

Was ist ein MIME-TYP? MIME-Typen-Typensammlung

Was ist ein MIME-TYP? 1. Zunächst müssen wir verst...

So schreiben Sie eine Node.JS-Version eines Spiels

Inhaltsverzeichnis Überblick Build-Prozess Verwan...

Lösen Sie das Problem des Syn Flooding in der MySQL-Datenbank

Der SYN-Angriff ist die häufigste und am leichtes...

Lösen Sie schnell das Problem des langsamen Tomcat-Starts, super einfach

Heute habe ich einem Klassenkameraden geholfen, e...

So verwenden Sie pdf.js zur Vorschau von PDF-Dateien in Vue

Wenn wir auf der Seite eine PDF-Vorschau anzeigen...

Prinzip des MySQL-Indexfehlers

Inhaltsverzeichnis 1. Gründe für Indexfehler 2. S...