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

Lösung für Vues Unfähigkeit, Array-Änderungen zu beobachten

Inhaltsverzeichnis 1. Vue-Listener-Array 2. Situa...

Zabbix' PSK-Verschlüsselung kombiniert mit zabbix_get-Wert

Seit Zabbix Version 3.0 wird verschlüsselte Kommu...

So verwenden Sie Nginx, um einen RTMP-Liveserver auszuführen

Dieses Mal haben wir einen RTMP-Liveübertragungss...

Fassen Sie den User-Agent beliebter Browser zusammen

1. Grundkenntnisse: HTTP-Header-Benutzeragent Use...

Detaillierte Erläuterung der Verwendung der MySQL-Verkettungsfunktion CONCAT

In den vorherigen Artikeln wurden die Ersetzungsf...

Die umfassendste Sammlung von Front-End-Interviewfragen

HTML und CSS 1. Verständnis und Kenntnisse von WE...

Eine kurze Analyse der parallelen MySQL-Replikation

01 Das Konzept der parallelen Replikation In der ...

Einführung in die Apache-Bereitstellung von https in der Kryptografie

Inhaltsverzeichnis Zweck Experimentelle Umgebung ...

Detaillierte Erklärung der Verwendung von Bildschirmbefehlen in Linux

GUN-Bildschirm: Offizielle Website: http://www.gn...

jQuery Canvas zeichnet Bildüberprüfungscodebeispiel

In diesem Artikelbeispiel wird der spezifische Co...