Maison >base de données >tutoriel mysql >Comment lier correctement un tableau d'ID à une instruction MySQL IN à l'aide de PDO ?
Valeurs de liaison PDO pour l'instruction MySQL IN
Cette question concerne la liaison d'un tableau d'ID à une instruction PDO à utiliser dans une instruction MySQL IN . Le problème survient lorsque les valeurs séparées par des virgules dans le tableau sont traitées comme une seule chaîne plutôt que comme des valeurs individuelles.
Solution :
La solution suggérée consiste à utiliser le fonction find_in_set dans la clause WHERE. Cependant, d'autres options sont disponibles.
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)
Cette méthode convient aux ensembles de données relativement petits, car elle peut avoir des implications en termes de performances pour bases de données plus grandes.
Option 2 : Fonction définie par l'utilisateur
A Une fonction définie par l'utilisateur peut être créée pour diviser la liste de valeurs séparées par des virgules. Il s'agit d'une solution plus évolutive pour les grands ensembles de données. Des ressources sur la création d'une telle fonction peuvent être trouvées dans le lien fourni :
http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated- string-ids/
En fin de compte, le choix de la solution dépend de la taille et de la complexité de l'ensemble de données en cours de traitement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!