Heim > Datenbank > MySQL-Tutorial > Wie suche ich in MySQL nach bestimmten Werten in einem durch Kommas getrennten Feld?

Wie suche ich in MySQL nach bestimmten Werten in einem durch Kommas getrennten Feld?

Barbara Streisand
Freigeben: 2024-11-08 00:01:03
Original
442 Leute haben es durchsucht

How to Search for Specific Values in a Comma-Separated Field in MySQL?

Suchen in einem durch Kommas getrennten Feld in MySQL

In MySQL können bestimmte Szenarien auftreten, in denen Daten in einem durch Kommas getrennten Format gespeichert werden , obwohl empfohlene Praktiken davon abraten. Dies stellt die Durchführung präziser Suchvorgänge in solchen Feldern vor Herausforderungen. Betrachten Sie das folgende Beispiel:

Eine Tabelle enthält ein Feld mit Werten aus einer anderen Tabelle, die als durch Kommas getrennte Liste gespeichert sind:

12,13,14,16
Nach dem Login kopieren

Die vorliegende Aufgabe besteht darin, darin nach bestimmten Werten zu suchen Feld mithilfe einer Abfrage wie:

SELECT ... WHERE field LIKE '%1%'
Nach dem Login kopieren

Aufgrund der Art der Daten würde eine solche Abfrage jedoch fast alle Einträge treffen, da die meisten gängigen IDs in einen engen Bereich fallen.

Um dieses Problem zu beheben, ist eine spezifischere Suche erforderlich. Anstatt %1% zu verwenden, sollten Sie %1,% innerhalb der LIKE-Bedingung verwenden. Dadurch werden Werte abgeglichen, die 1 vor und nach einem Komma enthalten.

Leider weist dieser Ansatz Einschränkungen für den ersten und letzten Wert in der durch Kommas getrennten Liste auf, da diese nicht vom Muster abgeglichen werden.

Daher ist ein anderer Ansatz notwendig. MySQL bietet eine leistungsstarke Funktion namens FIND_IN_SET, die es ermöglicht, innerhalb einer durch Kommas getrennten Liste zu suchen:

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

Mit FIND_IN_SET wird die Position des angegebenen Werts innerhalb der durch Kommas getrennten Liste zurückgegeben, oder 0, wenn dies der Fall ist Wert ist nicht vorhanden. Dies ermöglicht eine präzise und effiziente Suche auch in nicht idealen Datenstrukturen.

Das obige ist der detaillierte Inhalt vonWie suche ich in MySQL nach bestimmten Werten in einem durch Kommas getrennten Feld?. 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