Heim > Datenbank > MySQL-Tutorial > Wie frage ich nach genauen Übereinstimmungen in durch Kommas getrennten MySQL-Strings?

Wie frage ich nach genauen Übereinstimmungen in durch Kommas getrennten MySQL-Strings?

Linda Hamilton
Freigeben: 2025-01-22 21:37:14
Original
718 Leute haben es durchsucht

How to Query for Exact Matches in Comma-Separated MySQL Strings?

Abfrage nach genauen Übereinstimmungen von durch Kommas getrennten Zeichenfolgen in MySQL

Das Abfragen bestimmter Werte stellt bei der Arbeit mit MySQL-Feldern, die durch Kommas getrennte Zeichenfolgen enthalten, häufig eine Herausforderung dar. Wenn Sie beispielsweise alle Datensätze mit einem bestimmten Wert in der Zeichenfolge abfragen, rufen Sie möglicherweise versehentlich Datensätze ab, die andere Werte für die Zielnummer enthalten.

Bedenken Sie die folgende Abfrage:

select * from shirts where colors like '%1%'
Nach dem Login kopieren

Diese Abfrage soll alle Hemden mit der Farbe Rot (Farbe=1) abrufen. Es werden jedoch auch Hemden mit den Farben Grau (=12) und Orange (=15) abgerufen, da diese Farben die Zahl 1 enthalten.

Um dieses Problem zu lösen, können Sie die Abfrage verbessern, um sicherzustellen, dass sie nur den genauen Farbwert auswählt, nach dem Sie suchen. Im Folgenden sind zwei häufig verwendete Methoden aufgeführt:

1. Kommas verbinden

Bei dieser Methode werden links und rechts vom Zielwert Kommas hinzugefügt. Dadurch wird sichergestellt, dass die Suchzeichenfolge nur mit den Werten übereinstimmt, die genau dem gewünschten Wert entsprechen.

select * from shirts where CONCAT(',', colors, ',') like '%,1,%'
Nach dem Login kopieren

2. Verwenden Sie find_in_set

find_in_set-Funktionen können auch verwendet werden, um gewünschte Ergebnisse zu erzielen. Diese Funktion benötigt zwei Parameter:

  • Der Zielwert, nach dem Sie suchen
  • Die durch Kommas getrennte Zeichenfolge, in der Sie suchen möchten

Wenn find_in_set einen Wert größer als 0 zurückgibt, bedeutet dies, dass der Zielwert in der Zeichenfolge vorhanden ist. Hier ist eine Beispielabfrage:

select * from shirts where find_in_set('1', colors) > 0
Nach dem Login kopieren

Durch die Verwendung einer dieser beiden Methoden können Sie sicherstellen, dass Ihre MySQL-Abfragen genau Datensätze für die genauen Farbwerte abrufen, an denen Sie interessiert sind, ohne unerwünschte Übereinstimmungen zu finden.

Das obige ist der detaillierte Inhalt vonWie frage ich nach genauen Übereinstimmungen in durch Kommas getrennten MySQL-Strings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage