MySQL IN ()-Abfrageproblem für Multi-ID-Datensätze
Beim Ausführen der Abfrage:
SELECT * FROM table WHERE id IN (1,2,3,4);
zu Beim Abrufen von Daten basierend auf mehreren IDs kann es zu einem Problem kommen, bei dem Zeilen mit mehreren übereinstimmenden IDs nicht zurückgegeben werden. Diese Abfrage bedeutet:
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
wobei nur Zeilen abgerufen werden, die mit einer einzelnen ID im Satz übereinstimmen.
Lösung: Verwendung des SET-Datentyps
Um diese Einschränkung zu beheben, können Sie erwägen, den Datentyp der ID-Spalte in SET zu ändern. Dadurch können Sie mehrere Werte in einer einzigen Spalte speichern. Nachdem Sie diese Änderung vorgenommen haben, können Sie die Funktion FIND_IN_SET in Ihrer Abfrage verwenden:
SELECT * FROM table WHERE FIND_IN_SET('1', id);
Diese Abfrage gibt alle Zeilen zurück, die „1“ als einen der Werte in der ID-Spalte enthalten, unabhängig von anderen Werten gegenwärtig. Dies bietet eine flexiblere Möglichkeit, Datensätze mit mehreren IDs abzugleichen.
Das obige ist der detaillierte Inhalt vonWarum gibt die MySQL IN()-Abfrage keine Zeilen mit mehreren übereinstimmenden IDs zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!