Heim >Datenbank >MySQL-Tutorial >Wie lassen sich bestimmte Werte in durch Kommas getrennten MySQL-Strings genau abgleichen?

Wie lassen sich bestimmte Werte in durch Kommas getrennten MySQL-Strings genau abgleichen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-22 21:32:10955Durchsuche

How to Accurately Match Specific Values in Comma-Separated MySQL Strings?

Passen Sie bestimmte Werte in einer durch Kommas getrennten MySQL-Zeichenfolge an

Beim Arbeiten mit Tabellen, die durch Kommas getrennte Werte enthalten, ist es häufig erforderlich, bestimmte Werte innerhalb dieser Zeichenfolgen zu isolieren. Die Verwendung des LIKE-Operators mit dem Platzhalterzeichen (%) kann jedoch zu unerwarteten Übereinstimmungen führen.

Bedenken Sie das Feld COLORS in der Tabelle SHIRTS, das Werte wie „1,2,5,12,15“ enthält. Eine Abfrage wie „SELECT * FROM shirts WHERE farben LIKE ‚%1%‘“ versucht, alle Hemden mit einer roten Farbe (Farbe=1) zu finden. Allerdings werden unerwartet auch Hemden mit den Farben Grau (Farbe=12) und Orange (Farbe=15) abgerufen.

Lösung:

1. Verbindungskommas:

Die klassische Lösung besteht darin, Kommas auf der linken und rechten Seite der Zeichenfolge zu verketten:

<code class="language-sql">SELECT * FROM shirts WHERE CONCAT(',', colors, ',') LIKE '%,1,%'</code>

Dadurch wird vor und nach der Zeichenfolge ein Komma eingefügt, um sicherzustellen, dass nur exakte Übereinstimmungen (Farbe=1) ausgewählt werden.

2. Verwenden Sie die Funktion find_in_set:

Alternativ können Sie die Funktion find_in_set verwenden, um nach einem bestimmten Wert in einer durch Kommas getrennten Zeichenfolge zu suchen:

<code class="language-sql">SELECT * FROM shirts WHERE find_in_set('1', colors) > 0</code>

Diese Funktion gibt einen Wert ungleich Null zurück, wenn der angegebene Wert in der Zeichenfolge gefunden wird, wodurch Hemden mit Farbe = 1 effektiv isoliert werden.

Das obige ist der detaillierte Inhalt vonWie lassen sich bestimmte Werte in durch Kommas getrennten MySQL-Strings genau abgleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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