Heim  >  Artikel  >  Datenbank  >  Wie gehe ich mit Datensätzen mit mehreren Werten in einer MySQL-WHERE-IN()-Klausel um?

Wie gehe ich mit Datensätzen mit mehreren Werten in einer MySQL-WHERE-IN()-Klausel um?

Barbara Streisand
Barbara StreisandOriginal
2024-11-06 18:07:03108Durchsuche

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause?

MySQL IN()-Operator

Bei der Abfrage einer MySQL-Datenbank wird der WHERE IN()-Operator häufig verwendet, um Zeilen basierend auf bestimmten Daten abzurufen Werte in einer Spalte. Die folgende Abfrage ruft beispielsweise alle Zeilen aus der Tabelle „table“ ab, in denen die Spalte „id“ mit einem der Werte (1, 2, 3, 4) übereinstimmt:

<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>

Es tritt jedoch ein Problem auf wenn ein Datensatz mehrere „id“-Werte wie 1 und 3 hat. In solchen Fällen gibt die Abfrage diese Zeile möglicherweise nicht zurück.

Lösung

Die Abfrage wird übersetzt zu den folgenden ODER-Bedingungen:

<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>

Daher werden nur Zeilen zurückgegeben, die eine dieser Bedingungen erfüllen.

Um dieses Problem zu beheben, besteht eine Möglichkeit darin, den SET-Datentyp für „ Spalte „ID“. Dadurch können Sie mehrere Werte mithilfe von durch Kommas getrennten Zeichenfolgen speichern. Sie können dann die Funktion FIND_IN_SET() verwenden, um nach bestimmten Werten zu suchen:

<code class="sql">SELECT * FROM table WHERE FIND_IN_SET('1', id);</code>

Diese Abfrage gibt alle Zeilen zurück, die „1“ als einen der Werte in der Spalte „id“ haben, unabhängig davon andere Werte, die vorhanden sein können.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Datensätzen mit mehreren Werten in einer MySQL-WHERE-IN()-Klausel um?. 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