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

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

Mary-Kate Olsen
Freigeben: 2025-01-22 21:21:11
Original
966 Leute haben es durchsucht

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

MySQL-Abfragen: Präzises Targeting von Werten in durch Kommas getrennten Zeichenfolgen

Viele Datenbanken verwenden Felder mit durch Kommas getrennten Werten (CSV). Dies stellt bei der Abfrage nach bestimmten Werten innerhalb dieser Zeichenfolgen häufig eine Herausforderung dar. Betrachten Sie eine COLORS-Spalte in einer SHIRTS-Tabelle. Eine einfache LIKE-Abfrage wie SELECT * FROM SHIRTS WHERE COLORS LIKE '%1%' kann zu ungenauen Ergebnissen führen und Einträge zurückgeben, bei denen „1“ Teil eines größeren Werts ist (z. B. „12“ oder „15“).

Um nur Hemden mit der Farbe „1“ genau abzurufen, vermeiden Sie Teilübereinstimmungen. Hier sind zwei wirksame Strategien:

Methode 1: Hinzufügen von Kommas für eine präzise Übereinstimmung

Bei diesem Ansatz wird die CSV-Zeichenfolge vor dem Vergleich mit Kommas flankiert. Dadurch wird sichergestellt, dass nur vollständige Werte übereinstimmen:

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

Durch das Hinzufügen von führenden und nachgestellten Kommas werden nur Einträge ausgewählt, bei denen „,1“ in der Zeichenfolge vorkommt.

Methode 2: Verwendung von FIND_IN_SET

Die Funktion FIND_IN_SET bietet eine direktere Lösung. Es identifiziert die Position eines Teilstrings innerhalb eines durch Kommas getrennten Strings und gibt einen Wert ungleich Null zurück, wenn er gefunden wird:

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

Diese Methode ist besonders hilfreich beim Umgang mit numerischen Kennungen oder Farbcodes. Es prüft direkt, ob „1“ als eindeutiger Wert innerhalb der Zeichenfolge COLORS vorhanden ist.

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