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!