Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Barbara Streisand
Freigeben: 2024-11-06 18:07:03
Original
176 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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