Einige Fehlercodetabellen verwenden aus historischen oder Leistungsgründen das folgende Entwurfsmuster. Das heißt, mehrere Attributwerte werden in derselben Zeile oder Spalte gespeichert. Wie im tonly_error_record in der folgenden Tabelle gezeigt: In diesem Fall können Sie die Spalte durch ein Semikolon „;“ aufteilen, um mehrere Zeilen zu bilden, und sie dann durch ein Komma „“, aufteilen, um mehrere Spalten zu bilden. Wie in der folgenden Tabelle gezeigt: Dies kann mithilfe der String-Splitting-Funktion in MySQL erreicht werden. Die Funktionsbeschreibung lautet wie folgt: SUBSTRING_INDEX(Zeichenfolge, Trennzeichen, Anzahl) -- str: die zu teilende Zeichenfolge; delim: das Trennzeichen; count: die Häufigkeit, mit der das Trennzeichen vorkommt Schließlich sieht die konkrete Implementierung wie folgt aus: #Schritt 1: Aufteilen in mehrere Zeilen basierend auf Semikolon ";" #Schritt 2: Aufteilen in mehrere Spalten basierend auf Komma "," select distinct S1.tbox_vin, (wählen Sie Teilstringindex (Teilstringindex (S1.Fehlercode, ',', 1), ',', -1)) als spn, (Teilstringindex auswählen (Teilstringindex (S1.Fehlercode, ',', 2), ',', -1)) fmi, S1.Zeit ändern aus ( wähle t1.tbox_vin, Teilstringindex (Teilstringindex (t1.dm1_string, ';', t2.help_topic_id + 1), ';', -1) als Fehlercode, t1.Zeit ändern von tonly_error_record t1 beitreten mysql.help_topic t2 auf t2.help_topic_id < (Länge(t1.dm1_string) – Länge(ersetzen(t1.dm1_string, ';', '')) + 1) wobei t1.dm1_string nicht null ist und t1.dm1_string != '') S1 wobei s1.error_code != '' und s1.error_code ist nicht null Sortierung nach S1.modify_time desc; Beteiligte Wissenspunkte1. String-Aufteilung: SUBSTRING_INDEX (str, delim, count)1. Parametererklärung
2. Beispiele (1) Alle Zeichen vor dem zweiten Komma "," als Trennzeichen verwenden. SUBSTRING_INDEX('7654,7698,7782,7788',',',2) (2) Alle Zeichen nach dem vorletzten Kommatrennzeichen "," abrufen SUBSTRING_INDEX('7654,7698,7782,7788',',',-2) 2. Ersetzungsfunktion: replace(str, from_str, to_str)1. Parametererklärung
2. Beispiele (1) Ersetzen Sie das Trennzeichen ",", Komma durch das Leerzeichen "". ERSETZEN('7654,7698,7782,7788',',','') 3. Ermitteln Sie die Länge des Strings: LENGTH( str )1. Parametererklärung
2. Beispiel (1) Ermitteln der Länge der Zeichenfolge '7654,7698,7782,7788' LÄNGE('7654,7698,7782,7788') Implementiertes SQL-Parsing WÄHLEN SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS Nummer AUS mysql.hilfe_thema WO Hilfethema-ID < LÄNGE('7654,7698,7782,7788')-LÄNGE(ERSETZEN('7654,7698,7782,7788',',',''))+1 Hier wird help_topic_id aus der help_topic-Tabelle der MySQL-Bibliothek als Variable verwendet, da help_topic_id automatisch inkrementiert wird. Natürlich können auch automatisch inkrementierte Felder anderer Tabellen als Hilfe verwendet werden. help_topic-Tabelle: Implementierungsschritte: Schritt 1: Ermitteln Sie zunächst die Anzahl der Zeichenfolgen, die am Ende aufgeteilt werden müssen, und simulieren Sie mithilfe von help_topic_id das Durchlaufen der n-ten Zeichenfolge. Der Codeausschnitt beinhaltete: Hilfethema-ID < LÄNGE('7654,7698,7782,7788')-LÄNGE(ERSETZEN('7654,7698,7782,7788',',',''))+1 Schritt 2: Teilen Sie die Zeichenfolge basierend auf dem Komma "," mithilfe der Funktion SUBSTRING_INDEX (str, delim, count) auf und weisen Sie das Ergebnis dem Feld „num“ zu. Der Codeausschnitt beinhaltete: SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS Nummer Erster Schritt: Verwenden Sie das Komma "," als Trennzeichen und fangen Sie alle Zeichenfolgen vor dem n+1. Trennzeichen entsprechend dem Wert von help_topic_id ab. (Hier liegt n+1 daran, dass help_topic_id bei 0 beginnt und wir es hier aus dem ersten Trennzeichen abrufen müssen.) SUBSTRING_INDEX('7654,7698,7782,7788',',',Hilfethema-ID+1) Zum Beispiel: Schritt 2: Verwenden Sie das Komma "," als Trennzeichen und extrahieren Sie alle Zeichenfolgen nach dem letzten Trennzeichen. SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',Hilfethema-ID+1),',',-1) Zum Beispiel: Schließlich wurden die folgenden Effekte erfolgreich erzielt ~ Hinweis: Informationen zum Aufteilen von Zeichenfolgen ohne Trennzeichen finden Sie unter MySQL – Zeichenfolgenaufteilung (Zeichenfolgenabfang ohne Trennzeichen). Dies ist das Ende dieses Artikels über Beispiele für die Aufteilung von MySQL in mehrere Zeilen und Spalten durch bestimmte Symbole. Weitere Informationen zur MySQL-spezifischen Symbolaufteilung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Ein netter HTML-Druckcode unterstützt das Umblättern
>>: Unterschied zwischen src- und href-Attributen
Vorwort Bezüglich der HugePages- und Oracle-Daten...
Installationsumgebung 1. gcc-Installation Um ngin...
Vorteile der Verwendung von xshell zur Verbindung...
Ich bin heute auf ein kleines Problem gestoßen und...
„HTML-Validierung“ bezieht sich auf die HTML-Valid...
Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...
Die Installation von MySQL 8.0.12 dauerte zwei Ta...
Als ich mich bei MySQL anmeldete, wurde mir plötz...
Kürzlich erhielt ich eine Anforderung für eine Fun...
MySQL-Daemon konnte nicht gestartet werden – Fehl...
Bei der Verwendung von Nginx als Webserver sind m...
Inhaltsverzeichnis Deinstallieren und installiere...
Da ich bereits HTML analysiert habe, möchte ich h...
Im eigentlichen Projektentwicklungsprozess wird di...
In Bezug auf die MySQL-Remoteverbindung stoßen wi...