String-Extraktion ohne TrennzeichenFragenanforderungen Feldwert in der Datenbank: Implementierungseffekt: Eine Datenzeile muss in mehrere Zeilen umgewandelt werden Implementiertes SQL Wählen Sie links (Substring ('P1111', Hilfethema-ID + 1), 1) als Nummer aus mysql.help_topic, wobei Hilfethema-ID < Länge ('P1111'); Beteiligte Wissenspunkte1. String-Abfangen: SUBSTRING(str,pos)1. Parameterbeschreibung
2. Beispiele (I) Holen Sie sich die Zeichenfolge „P1111“ ab dem zweiten Zeichen TEILZEICHENFOLGE('P1111',2) (II) Holen Sie sich die Zeichenfolge „P1111“, beginnend mit dem vorletzten Zeichen TEILZEICHENFOLGE('P1111',-2) 2. Extrahieren Sie den String von links: LEFT(str,len)1. Parameterbeschreibung
2. Beispiele (I) Holen Sie sich die 3 Zeichen ganz links aus der Zeichenfolge „P1111“. LINKS('P1111',3) Tipp: Es gibt eine Funktion LEFT(str,len), die den String von links abfängt, und natürlich gibt es auch eine RIGHT(str,len), die den String von rechts abfängt. Die Prinzipien der beiden Funktionen sind gleich, der Unterschied besteht darin, ob der String von links oder von rechts abgefangen wird. SQL-Analyse Wählen Sie links (Substring ('P1111', Hilfethema-ID + 1), 1) als Nummer aus mysql.help_topic, wobei Hilfethema-ID < Länge ('P1111'); Auch hier verwenden wir die help_topic_id der help_topic-Tabelle der MySQL-Bibliothek als Variable, da die help_topic_id auto-inkrementiert. Natürlich können wir auch die Auto-Increment-Felder anderer Tabellen als Hilfsmittel verwenden. Bitte beachten Sie MySQL - String Splitting (I) Implementierungsschritte Schritt 1: Ermitteln Sie die Länge der Zeichenfolge „P1111“ und verwenden Sie help_topic_id, um die Durchquerung der Zeichenfolge „P1111“ dynamisch zu simulieren. Hilfethema-ID < LENGTH('P1111') Schritt 2: Verwenden Sie die Funktion SUBSTRING(str,pos) und help_topic_id, um die Zeichenfolge „P1111“ zu extrahieren. (Der Grund für „help_topic_id+1“ ist hier, dass help_topic_id bei 0 beginnt und die Funktion SUBSTRING den String an der ersten Position abfangen muss) SUBSTRING('P1111', Hilfethema-ID+1) Zum Beispiel: Wenn help_topic_id = 0, ist die erhaltene Zeichenfolge = P1111 Wenn help_topic_id = 1, ist die erhaltene Zeichenfolge = 1111 …(und so weiter) Schritt 3: Basierend auf der Implementierung von Schritt 2 verwenden Sie die Funktion LEFT(str,len), um in Schritt 2 das erste Zeichen von links zu erhalten. LINKS(TEILSTRING('P1111',Hilfethema-ID+1),1) Zum Beispiel: Gemäß Schritt 2 ist die erhaltene Zeichenfolge P1111, wenn help_topic_id = 0 ist, und die in Schritt 3 erhaltene Zeichenfolge ist P Laut Schritt 2 ist die erhaltene Zeichenfolge 1111, wenn help_topic_id = 1 ist, und die in Schritt 3 erhaltene Zeichenfolge ist 1. …(und so weiter) Abschließend wurden folgende Effekte erzielt Hinweis: Informationen zum Aufteilen von Zeichenfolgen mit Trennzeichen finden Sie unter MySQL – Zeichenfolgenaufteilung (Abfangen von Zeichenfolgen mit Trennzeichen). Ergänzung: mysql teilt den gefundenen String auf_Mysql split string query Ich werde nicht viel Unsinn erzählen, schauen wir uns einfach den Code an ~ TRENNUNGSZEICHEN $$ DROP-FUNKTION, WENN `tms1`.`GetClassName` EXISTIERT $$ ERSTELLEN SIE DIE FUNKTION `GetClassName`(f_string VARCHAR(15000)) GIBT varchar(15000) ZURÜCK BEGINNEN /* Überprüfe die erste Position der Zeichenfolge, die , enthält*/ DECLARE THE_CNT INT(15) DEFAULT 1; /* Klassennummer */ deklariere classId varchar(20) als Standard ''; /* Zurückgegebener Klassenname */ DECLARE-Ergebnis varchar (15000) DEFAULT null; /* Klassenname */ DECLARE Klassenname varchar(50) DEFAULT ''; /* Die erste Position der Zeichenfolge, die ,*/ enthält setze THE_CNT = LOCATE(',',f_string); /* Prüfen, ob die erste Position der Zeichenfolge enthält, existiert*/ während (THE_CNT >= 0) tun /*, wenn der Standort nicht existiert*/ wenn THE_CNT = 0 dann /* Festlegen der Klassennummer*/ setze Klassen-ID = f_string; anders /* Klassennummer aus dem String abrufen */ setze Klassen-Id = SUBSTRING_INDEX(SUBSTRING_INDEX(f_string, ',', 1), ',', -1); Ende, wenn; /* Den Klassennamen anhand der Klassennummer ermitteln */ select (Wählen Sie den Namen aus der Klasse aus, wobei ID = Klassen-ID) in Klassenname; /* Gibt die Klassennummernzeichenfolge zurück, wenn sie leer ist*/ wenn das Ergebnis null ist, dann /* Wenn der Klassenname anhand der Nummer nicht gefunden wird*/ wenn className null ist, dann /* Setze den Klassennamen auf leer */ setze Klassennamen = ' '; Ende wenn; /* Füge den Klassennamen an die Zeichenfolge an */ Setze Ergebnis = Klassenname; anders /* Wenn der Klassenname anhand der Nummer nicht gefunden wird*/ wenn className null ist, dann /* Setze den Klassennamen auf leer */ setze Klassennamen = ' '; Ende wenn; /* Füge den Klassennamen an die Zeichenfolge an */ setze Ergebnis = CONCAT(Ergebnis,',',Klassenname); Ende wenn; /*, wenn der Standort nicht existiert*/ wenn THE_CNT = 0 dann /* Ergebnismenge zurückgeben */ Ergebnis zurückgeben; Ende wenn; /*Fangt die eingehende Zeichenfolge ab*/ setze f_string = rechts(f_string,Länge(f_string) - THE_CNT); /* Die erste Position der Zeichenfolge, die ,*/ enthält setze THE_CNT = LOCATE(',',f_string); /* Durchquerung beenden */ Ende während; /* Ergebnismenge zurückgeben */ Ergebnis zurückgeben; ENDE $$ TRENNUNGSZEICHEN ; Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: So schreiben Sie den Stil einer CSS3-Tianzi-Rasterliste
>>: Organisationsstruktur der Vue-Komponente und Details zur Komponentenregistrierung
Inhaltsverzeichnis 1. Einleitung 1. Was ist ein I...
Um zu verstehen, was das bedeutet, müssen wir zunä...
Wenn es um Tool-Websites geht, haben wir zunächst...
Inhaltsverzeichnis 1. Schreiben Sie vor 2. Overla...
Ab IE 8 wurde ein Kompatibilitätsmodus hinzugefügt...
1. Objekte dynamisch erstellen Es gibt zwei Mögli...
Hash-Modus (Standard) Funktionsprinzip: Überwache...
Heute habe ich zufällig einem Freund beim Umzug s...
1. Entdecken Sie das Problem © ist das Co...
Einige im Projekt verwendete Sonderzeichen und Sy...
Wenn wir HTML lernen, führt das Bild-Tag <img&...
Inhaltsverzeichnis Frage Lösung Frage Es scheint ...
Inhaltsverzeichnis Vorwort 1. Konfigurieren Sie d...
Hier ist ein allgemeines Ein-Klick-Leistungstests...
1. Der Linux-Server konfiguriert /etc/hosts.deny ...