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

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch e...

Vue Virtual DOM – Schnellstart

Inhaltsverzeichnis Virtueller DOM Was ist virtuel...

CSS-Lösung für mehrspaltiges Layout

1. Feste Breite + adaptiv Erwarteter Effekt: fest...

Fallanalyse mehrerer MySQL-Aktualisierungsvorgänge

Inhaltsverzeichnis Fallstudie Kontostand aktualis...

So erstellen Sie ein stilvolles Webseiten-Design (Grafik-Tutorial)

„Großartig“ sind wahrscheinlich die beiden Worte, ...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

Detaillierte Erklärung des Unterschieds zwischen Vue-Lebenszyklus

Lebenszyklusklassifizierung Jede Komponente von V...

JavaScript Canvas implementiert Grafiken und Text mit Schatten

Verwenden Sie Canvas, um Grafiken und Text mit Sc...

Wofür wird jQuery verwendet? jQuery ist eigentlich ein js-Framework

Einführung in jQuery Die jQuery-Bibliothek kann e...