Heim > Datenbank > MySQL-Tutorial > Wie kann man bestimmte Werte in durch Kommas getrennten Zeichenfolgen in MySQL-Abfragen effizient finden?

Wie kann man bestimmte Werte in durch Kommas getrennten Zeichenfolgen in MySQL-Abfragen effizient finden?

Patricia Arquette
Freigeben: 2025-01-22 21:27:11
Original
860 Leute haben es durchsucht

How to Efficiently Find Specific Values in Comma-Separated Strings within MySQL Queries?

MySQL-Abfragen und durch Kommas getrennte Zeichenfolgenwerte: Ein fokussierter Ansatz

Die Verwaltung von Daten, die als durch Kommas getrennte Zeichenfolgen in MySQL-Datenbanken gespeichert sind, stellt beim Abrufen bestimmter Werte oft eine Herausforderung dar. Stellen Sie sich ein COLORS-Feld in einer SHIRTS-Tabelle vor, das durch Kommas getrennte Zahlen wie „1,2,5,12,15“ enthält, wobei jede Zahl eine Farbe darstellt.

Das Problem mit einfachen LIKE-Abfragen

Eine Abfrage wie SELECT * FROM SHIRTS WHERE COLORS LIKE '%1%' zielt darauf ab, Hemden mit der Farbe 1 (Rot) zu finden, gibt aber aufgrund der teilweisen Zeichenfolgenübereinstimmung fälschlicherweise auch Hemden mit Farben wie 12 (Grau) und 15 (Orange) zurück.

Präzise Wertabruftechniken

Um nur Hemden mit Farbe 1 zu isolieren, benötigen wir präzisere Methoden:

Methode 1: Nutzung von CONCAT für exaktes Matching

Durch das strategische Hinzufügen von Kommas mithilfe der Funktion CONCAT können wir eine genaue Übereinstimmung sicherstellen:

<code class="language-sql">SELECT * FROM SHIRTS WHERE CONCAT(',', COLORS, ',') LIKE '%,1,%'</code>
Nach dem Login kopieren

Dadurch werden Kommas am Anfang und Ende der COLORS-Zeichenfolge hinzugefügt, was eine präzise Suche nach „,1,“ ermöglicht.

Methode 2: Verwendung der Funktion „find_in_set“

Alternativ bietet die Funktion find_in_set eine direktere Lösung:

<code class="language-sql">SELECT * FROM SHIRTS WHERE FIND_IN_SET('1', COLORS) > 0</code>
Nach dem Login kopieren

FIND_IN_SET gibt einen Wert größer als 0 zurück, wenn die Suchzeichenfolge (in diesem Fall „1“) innerhalb der durch Kommas getrennten Zeichenfolge (COLORS) gefunden wird.

Diese Methoden bieten effiziente Möglichkeiten, bestimmte Werte aus durch Kommas getrennten Zeichenfolgen in Ihren MySQL-Abfragen genau zu extrahieren und so die Fallstricke ungenauer LIKE-Anweisungen zu vermeiden. Denken Sie daran, dass diese Lösungen zwar funktionieren, die Normalisierung Ihrer Datenbank zur Vermeidung von durch Kommas getrennten Werten jedoch im Allgemeinen die beste langfristige Lösung für Datenintegrität und Abfrageleistung ist.

Das obige ist der detaillierte Inhalt vonWie kann man bestimmte Werte in durch Kommas getrennten Zeichenfolgen in MySQL-Abfragen effizient finden?. 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