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

So beheben Sie den abnormalen Fehler ERROR: 2002 in MySQL

Kürzlich ist beim Starten von MySQL ein Fehler au...

Warum brauchen wir Map, wenn wir in JavaScript bereits Object haben?

Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...

CSS zum Erzielen eines Chat-Blaseneffekts

1. Rendern JD-Effekt Simulationseffekt 2. Grundsa...

Beispiel zum Ändern von Stilen über CSS-Variablen

Frage Wie ändere ich den CSS-Pseudoklassenstil mi...

So prüfen Sie, ob ein Port in LINUX belegt ist

Ich konnte nie herausfinden, ob der Port belegt i...

Gedanken zu copy_{to, from}_user() im Linux-Kernel

Inhaltsverzeichnis 1. Was ist copy_{to,from}_user...

Prinzipanalyse des UDP-Verbindungsobjekts und Anwendungsbeispiele

Ich habe zuvor zum Einstieg in UDP ein einfaches ...

Detaillierte Erläuterung des Ausführungsprozesses der JavaScript-Engine V8

Inhaltsverzeichnis 1. V8-Quelle 2. V8-Serviceziel...

Mysql NULL verursachte die Grube

Verwenden von NULL in Vergleichsoperatoren mysql&...