Heim >Datenbank >MySQL-Tutorial >Wie binde ich ein Array von IDs mithilfe von PDO ordnungsgemäß an eine MySQL IN-Anweisung?
PDO-Bindungswerte für MySQL IN-Anweisung
Diese Frage befasst sich mit der Bindung eines Arrays von IDs an eine PDO-Anweisung zur Verwendung in einer MySQL IN-Anweisung . Das Problem entsteht, wenn die durch Kommas getrennten Werte im Array als einzelne Zeichenfolge und nicht als einzelne Werte behandelt werden.
Lösung:
Die vorgeschlagene Lösung ist die Verwendung von find_in_set-Funktion in der WHERE-Klausel. Es stehen jedoch auch andere Optionen zur Verfügung.
Option 1: Find_in_set
select users.id from users join products on products.user_id = users.id where find_in_set(cast(products.id as char), :products)
Diese Methode eignet sich für relativ kleine Datensätze, da sie Auswirkungen auf die Leistung haben kann größere Datenbanken.
Option 2: Benutzerdefiniert Funktion
Eine benutzerdefinierte Funktion kann erstellt werden, um die durch Kommas getrennte Werteliste aufzuteilen. Dies ist eine skalierbarere Lösung für große Datenmengen. Ressourcen zum Erstellen einer solchen Funktion finden Sie unter dem bereitgestellten Link:
http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated- string-ids/
Letztendlich hängt die Wahl der Lösung von der Größe und Komplexität des zu verarbeitenden Datensatzes ab.
Das obige ist der detaillierte Inhalt vonWie binde ich ein Array von IDs mithilfe von PDO ordnungsgemäß an eine MySQL IN-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!