Auswahl aus einer MySQL-Tabelle mit einem Array von Werten in einem bestimmten Feld
Bei der Arbeit mit MySQL-Datenbanken können Sie auf Situationen stoßen, in denen Sie dies benötigen um Daten basierend auf in einem Array gespeicherten Werten abzurufen. Nehmen wir zum Beispiel an, Sie haben ein Array namens $array, das eine Liste von Benutzer-IDs enthält:
$array = array(1, 40, 20, 55, 29, 48);
To Wenn Sie bestimmte Zeilen auswählen, in denen die Spalte „myField“ mit den Werten in diesem Array übereinstimmt, können Sie herkömmlicherweise eine Schleife verwenden, um eine komplexe „WHERE – OR – OR – OR“-Anweisung zu erstellen. Es gibt jedoch einen einfacheren und effizienteren Ansatz.
Verwendung des „IN“-Operators
Der MySQL-„IN“-Operator bietet eine elegante Lösung für solche Szenarien. Sie können mit einer einzigen Anweisung mehrere Werte in der WHERE-Klausel angeben:
$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(",", $array) . ")";
In diesem Beispiel stellt der „IN“-Operator sicher, dass die Abfrage Zeilen abruft, in denen die myField-Spalte mit einem der im $-Array gespeicherten Werte übereinstimmt. Die Funktion implode() wird verwendet, um das Array in eine durch Kommas getrennte Zeichenfolge umzuwandeln, die dann innerhalb der SQL-Abfrage verkettet wird.
Beispielimplementierung
Um das auszuführen Um eine Abfrage mit dem Operator „IN“ durchzuführen, können Sie die folgenden Schritte ausführen:
Durch die Verwendung des „IN“-Operators können Sie kann Zeilen aus einer MySQL-Tabelle basierend auf mehreren in einem Array gespeicherten Werten effizient auswählen, wodurch der Bedarf an komplexen und langsameren Schleifenmechanismen verringert wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3