Heim >Datenbank >MySQL-Tutorial >Wie binde ich ein Array von IDs mithilfe von PDO ordnungsgemäß an eine MySQL IN-Anweisung?

Wie binde ich ein Array von IDs mithilfe von PDO ordnungsgemäß an eine MySQL IN-Anweisung?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 08:41:10338Durchsuche

How to Properly Bind an Array of IDs to a MySQL IN Statement Using PDO?

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!

Stellungnahme:
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