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 2. Implementieru...
Der von ${param} übergebene Parameter wird als Te...
Verwenden Sie einfach CSS, um alle Effekte von Ec...
Wenn die Seite nicht reagiert, ist die Anzeige de...
Das Shell-Skript richtet die Zugriffskontrolle ei...
Die Rolle der Schnittstelle: Schnittstelle, auf E...
Die Funktion wurde schon vor langer Zeit implemen...
Experimentelle Umgebung: Physische Maschine Windo...
Link zum Download der ZIP-Datei auf der offiziell...
CSS- CodeInhalt in die Zwischenablage kopieren .b...
Inhaltsverzeichnis Text 1. Maschine vorbereiten 2...
Inhaltsverzeichnis MutationObserver API Merkmale ...
Einführung Beim Schreiben von SQL bin ich heute a...
MQTT-Protokoll MQTT (Message Queuing Telemetry Tr...
Durch das Studium und die Anwendung von Node wiss...