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

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

HTML-Tabellen-Tag-Tutorial (44): Tabellenkopfzeilen-Tag

<br />Um die Tabellenstruktur im Quellcode d...

Native JS-Kapselung, nahtlose Karussellfunktion

Natives js-gekapseltes nahtloses Karussell-Plug-I...

So verwalten Sie große Datei-Uploads und Breakpoint-Resumes basierend auf js

Inhaltsverzeichnis Vorwort Frontend-Struktur Back...

Canonical ermöglicht Linux-Desktop-Apps mit Flutter (empfohlen)

Das Ziel von Google mit Flutter bestand immer dar...

JavaScript zum Erzielen eines benutzerdefinierten Bildlaufleisteneffekts

In tatsächlichen Projekten befinden sich die Bild...

Über Generika der C++ TpeScript-Reihe

Inhaltsverzeichnis 1. Vorlage 2. Generika 3. Gene...

Tutorial zur Installation von Ubuntu Server in Vmware

In diesem Artikel finden Sie das grafische Tutori...

So wenden Sie TypeScript-Klassen in Vue-Projekten an

Inhaltsverzeichnis 1. Einleitung 2. Verwendung 1....

Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

1. Einleitung Ich möchte Selenium verwenden, um D...

Win10 Installation von MySQL 5.7 MSI-Version des Tutorials mit Bildern und Text

Ich habe es im MSI-Format installiert, hauptsächl...