Zwei Methoden der MySql-Kommaverkettungs-Stringabfrage

Zwei Methoden der MySql-Kommaverkettungs-Stringabfrage

Die folgenden beiden Funktionen werden auf die gleiche Weise wie FIND_IN_SET verwendet. Wenn Sie sie verwenden, müssen Sie lediglich FIND_IN_SET FIND_PART_IN_SET oder FIND_ALL_PART_IN_SET ersetzen.

Ein Feld ist beispielsweise 1, 2, 3, 4, 5

Anwendung:

Die erste, geben Sie 1, 3, 6 ein, um herauszufinden

wähle * aus XXX, wobei FIND_PART_IN_SET('1,3,6','1,2,3,4,5')

Der zweite Typ, der 1, 3, 6 übergibt, kann nicht gefunden werden

wähle * aus XXX, wobei FIND_ALL_PART_IN_SET('1,3,6','1,2,3,4,5')

Funktion:

Der erste Typ: Solange einer von ihnen enthalten ist, kann er erkannt werden

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1-Text, str2-Text)
 RETURNS-Text
BEGINNEN
 #Übergeben Sie zwei durch Kommas getrennte Zeichenfolgen und bestimmen Sie, ob die zweite Zeichenfolge das einzelne Zeichen nach der Teilung der ersten Zeichenfolge enthält. DECLARE CURRENTINDEX INT; #Aktueller Index DECLARE CURRENTSTR-Text;
DECLARE-Ergebnis int;
Setze Ergebnis = 0;
setze CURRENTINDEX = 0;
setze CURRENTSTR = '';
WENN str1 NICHT NULL IST UND str1 != '', DANN
 AKTUELLEN INDEX FESTLEGEN = LOCATE(',',str1);
 SOLANGE CURRENTINDEX > 0 IST
 SETZEN SIE CURRENTSTR = Teilzeichenfolge (str1,1, CURRENTINDEX-1);
 wenn FIND_IN_SET(CURRENTSTR,str2) DANN
  Setze Ergebnis = 1;
 Ende wenn;
 SET str1 = Teilzeichenfolge (str1, AKTUELLER INDEX + 1);
 AKTUELLEN INDEX FESTLEGEN = LOCATE(',',str1);
 ENDE WÄHREND;
 #Nur eins übergeben und kein Komma am Ende IF LENGTH(str1) > 0 THEN
 wenn FIND_IN_SET(str1,str2) DANN
  Setze Ergebnis = 1;
 Ende wenn;
 ENDE, WENN;
ENDE, WENN;
RETURN-Ergebnis;
ENDE;

Der zweite Typ: Alle müssen enthalten sein, um erkannt zu werden

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1-Text, str2-Text)
 RETURNS-Text
BEGINNEN
 #Übergeben Sie zwei durch Kommas getrennte Zeichenfolgen, um zu bestimmen, ob die zweite Zeichenfolge alle Einzelzeichen nach der Teilung der ersten Zeichenfolge enthält. DECLARE CURRENTINDEX INT; #Aktueller Index DECLARE CURRENTSTR-Text;
ERGEBNIS DECLARE int;
Erklären Sie, dass Totalanzahl int ist;
DECLARE TRUECOUNT int;
setze ERGEBNIS = 0;
setze CURRENTINDEX = 0;
setze CURRENTSTR = '';
setze TOTALCOUNT = 0;
setze TRUECOUNT = 0;
WENN str1 NICHT NULL IST UND str1 != '', DANN
 AKTUELLEN INDEX FESTLEGEN = LOCATE(',',str1);
 SOLANGE CURRENTINDEX > 0 IST
 Setze GESAMTZAHL = GESAMTZAHL + 1;
 SETZEN SIE CURRENTSTR = Teilzeichenfolge (str1,1, CURRENTINDEX-1);
 wenn FIND_IN_SET(CURRENTSTR,str2) DANN
  Setzen Sie TRUECOUNT = TRUECOUNT + 1;
 Ende wenn;
 SET str1 = Teilzeichenfolge (str1, AKTUELLER INDEX + 1);
 AKTUELLEN INDEX FESTLEGEN = LOCATE(',',str1);
 ENDE WÄHREND;
 #Nur eins übergeben und kein Komma am Ende IF LENGTH(str1) > 0 THEN
 Setze GESAMTZAHL = GESAMTZAHL + 1;
 wenn FIND_IN_SET(str1,str2) DANN
  Setzen Sie TRUECOUNT = TRUECOUNT + 1;
 Ende wenn;
 ENDE, WENN;
ENDE, WENN;
WENN TOTALCOUNT > 0 UND TRUECOUNT = TOTALCOUNT, DANN 
 ERGEBNIS FESTLEGEN = 1;
ENDE, WENN;
RETURN-Ergebnis;
ENDE;

Zusammenfassen

Oben sind zwei vom Herausgeber eingeführte Methoden zur MySql-Kommaverkettungszeichenfolgenabfrage. Ich hoffe, sie sind für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Mysql-String-Abfangen und Abrufen von Daten im angegebenen String
  • MySQL fängt die SQL-Anweisung der String-Funktion ab
  • MySQL implementiert Zeichenfolgenverkettung, Abfangen, Ersetzen und Positionssuchvorgänge

<<:  Detaillierte Erläuterung der Verwendung des Linux-Befehls seq

>>:  Vue realisiert den gesamten Prozess der Slider-Drag-Verifizierungsfunktion

Artikel empfehlen

Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden

Zusammenfassen 1. Ähnlichkeiten Beide können den ...

Eine kurze Diskussion über die häufig verwendeten APIs der VUE uni-app

Inhaltsverzeichnis 1. Routing und Seitensprung 2....

Detaillierte Erklärung zum Ein- und Aussteigen aus dem Docker-Container

1 Starten Sie den Docker-Dienst Zuerst müssen Sie...

Fabric.js implementiert DIY-Postkartenfunktion

In diesem Artikel wird der spezifische Code von F...

Implementierung der Docker-Bereitstellung eines MySQL-Clusters

Nachteile einer Single-Node-Datenbank Große Inter...

Detaillierte Erklärung zur Verwendung benutzerdefinierter Parameter in MySQL

Zu den MySQL-Variablen zählen Systemvariablen und...

Detaillierte Schritte zum Erstellen eines NFS-Dateifreigabeservers unter Linux

Linux erstellt NFS-Server Um den Datenaustausch z...

Detaillierte Schritte zur Verwendung von Arthas in einem Docker-Container

Was kann Arthas für Sie tun? Arthas ist das Open-...

Beispiel für einen WeChat-Applet-Rechner

Beispiel für einen WeChat-Applet-Rechner. Zu Ihre...