Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann man in MySQL effizient nach bestimmten Werten in durch Kommas getrennten Listen suchen?

Linda Hamilton
Freigeben: 2024-11-09 14:17:02
Original
843 Leute haben es durchsucht

How to Efficiently Search for Specific Values in Comma-Separated Lists in MySQL?

Suche nach durch Kommas getrennten Listen in MySQL

Beim Umgang mit einem MySQL-Feld, das eine durch Kommas getrennte Liste von IDs enthält (z. B. „ 12,13,14,16") wird es schwierig, mit einem LIKE gezielt nach bestimmten Werten in dieser Liste zu suchen Operator.

Ein Benutzer, der mit diesem Problem konfrontiert war, suchte nach einer Möglichkeit, in einem solchen Feld nach einem bestimmten Wert (z. B. „1“) zu suchen. Allerdings würde die Verwendung einer Abfrage wie „SELECT ... WHERE field LIKE ‚%1%‘“ dazu führen, dass fast alle Einträge abgerufen werden, da IDs im Bereich von 10–20 innerhalb des Felds weit verbreitet sind.

Um dieses Problem zu beheben, hat der Benutzer überlegt, stattdessen nach „%1,%“ zu suchen. Dieser Ansatz würde jedoch für die erste und letzte ID im Feld nicht funktionieren.

Lösung: FIND_IN_SET-Funktion

Die Lösung liegt in der Verwendung der FIND_IN_SET-Funktion in MySQL. FIND_IN_SET benötigt zwei Argumente: eine Zeichenfolge, nach der gesucht werden soll, und eine durch Kommas getrennte Zeichenfolge, in der gesucht werden soll. Es gibt die Position der gesuchten Zeichenfolge innerhalb der Suchzeichenfolge zurück oder 0, wenn sie nicht gefunden wird.

In diesem Fall würde die Abfrage für die Suche nach „1“ im Feld wie folgt lauten:

SELECT ... WHERE FIND_IN_SET('1', field)
Nach dem Login kopieren

Diese Abfrage gibt nur die Zeilen zurück, in denen „1“ in der durch Kommas getrennten Liste der IDs im Feld vorhanden ist.

Das obige ist der detaillierte Inhalt vonWie kann man in MySQL effizient nach bestimmten Werten in durch Kommas getrennten Listen suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage