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
Das Verwendungsformat des mysqladmin-Tools ist: m...
SVG wurde in den letzten Jahren aufgrund seiner v...
Inhaltsverzeichnis 1. Gojs-Implementierung 1. Zei...
1. Konvertieren Sie das JSON-Objekt in eine JSON-...
1. Suchen Sie zunächst die Datendatei auf dem Mig...
1. Welche drei Formate? Dies sind: gif, jpg und pn...
Inhaltsverzeichnis 1. Stückliste 2. Zusammensetzu...
500 (Interner Serverfehler) Auf dem Server ist ei...
1. Overlay-Übersicht Overlay bedeutet Überlagerun...
Heute haben wir die Frage besprochen, wie hoch de...
Vorwort Sperren sind Synchronisierungsmechanismen...
Es gibt nur eine Lösung: die Quelle ändern! Die Q...
Inhaltsverzeichnis Die Fallstricke Füllmethode Wa...
Inhaltsverzeichnis 1. Einige Punkte, die Sie beac...
In diesem Artikel wird die Installations- und Kon...