Vorwort Dies ist eine neue Funktion, die ich kürzlich entdeckt habe. Mein Einsatzszenario im Projekt sieht wie folgt aus: Es gibt eine Anwendungstyptabelle, die die Felder parentId und parentIds enthält. Ersteres ist die übergeordnete ID, letzteres die übergeordnete ID auf mehreren Ebenen. Beide sind in der Datenbank vom Typ varchar. parentIds besteht aus mehreren übergeordneten IDs und ist durch "" getrennt. Der Teamleiter teilte mir mit, dass ich diese Funktion nutzen könne, also informierte ich mich darüber und nutzte sie. Grammatik
Definition
strlist: Eine durch Kommas verbundene Zeichenfolge, z. B. „a,b,c,d“. Die Zeichenfolge ähnelt dem durch Kommas verbundenen Wert vom Typ SET. Beispiel: SELECT FIND_IN_SET('b','a,b,c,d'); //Der Rückgabewert ist 2, also der zweite Wert Beispiel In der Artikeltabelle gibt es ein Typfeld, in dem der Artikeltyp gespeichert wird, darunter 1 Überschrift, 2 Empfehlung, 3 Hotspot, 4 Bild und Text usw. Hier kommt find_in_set ins Spiel. Nachfolgend der zitierte Inhalt: Wählen Sie * aus dem Artikel, wobei FIND_IN_SET('4',Typ) Der Unterschied zwischen find_in_set() und in: Erstellen Sie eine Testtabelle, um den Unterschied zwischen den beiden zu veranschaulichen Tabelle „tb_test“ erstellen ( `id` int(8) NICHT NULL auto_increment, `name` varchar(255) NICHT NULL, `Liste` varchar(255) NICHT NULL, PRIMÄRSCHLÜSSEL (`id`) ); INSERT INTO `tb_test` VALUES (1, 'Name', 'daodao, xiaohu, xiaoqin'); INSERT INTO `tb_test` VALUES (2, 'name2', 'xiaohu, daodao, xiaoqin'); INSERT INTO `tb_test` VALUES (3, 'name3', 'xiaoqin, daodao, xiaohu'); Ich dachte ursprünglich, dass MySQL eine solche Abfrage durchführen könnte: SELECT id,name,liste aus tb_test WHERE 'daodao' IN(liste); -- (I) Tatsächlich funktioniert das nicht. Die Abfrage ist nur gültig, wenn der Wert des Listenfelds gleich 'daodao' ist (also vollständig mit dem String vor IN übereinstimmt), sonst werden keine Ergebnisse erhalten, selbst wenn 'daodao' tatsächlich in der Liste steht. Schauen wir uns das an: Wählen Sie ID, Name, Liste aus tb_test aus, wobei 'daodao' in ('libk', 'zyfon', 'daodao') angegeben ist. -- (II) Das ist in Ordnung. Was ist der Unterschied zwischen diesen beiden? Warum der erste nicht das richtige Ergebnis erzielen kann, der zweite jedoch schon. Der Grund dafür ist, dass (Liste) Liste in (1) eine Variable ist, während ('libk', 'zyfon', 'daodao') in (2) Konstanten sind. Wenn Sie also möchten, dass (1) korrekt funktioniert, müssen Sie verwenden finden_in_set(): SELECT id,name,list from tb_test WHERE FIND_IN_SET('daodao',list); – Verbesserte Version von (I) Zusammenfassen Dies ist das Ende dieses Artikels über die grundlegende Verwendung der Funktion find_in_set in MySQL. Weitere Informationen zur Verwendung der MySQL-Funktion find_in_set finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: So installieren und konfigurieren Sie den Supervisor-Daemon unter CentOS7
>>: Vue.js verwendet Element-ui, um das Navigationsmenü zu implementieren
Als ich heute mit der Baidu-Seite übte, stellte i...
Aufgrund von Geschäftsanpassungen im Unternehmen ...
Angenommen, es gibt einen solchen Anfangscode: &l...
Inhaltsverzeichnis 1. Vergleich mit Vue2 1. Neue ...
Inhaltsverzeichnis Vom Vater zum Sohn: Sohn zum V...
1 Einleitung Redis ist eine leistungsstarke, auf ...
Inhaltsverzeichnis Vorwort: Verschlüsselungsalgor...
Docker Compose ist ein Docker-Tool zum Definieren...
1. Übersicht Das Image in Docker ist in Schichten...
Vorwort Als ich heute Xianyu durchsuchte, fiel mi...
Virtuelle Maschinen sind eine sehr praktische Tes...
Inhaltsverzeichnis Vorwort Warum Wie viel kostet ...
Vorwort <br />Ich arbeite schon eine ganze W...
Abfrage-Cache 1. Funktionsprinzip des Abfrage-Cac...
Inhaltsverzeichnis 1. Übersicht 2. Definieren Sie...