sql >> Base de Datos >  >> RDS >> Mysql

Valores de enlace de PDO para la declaración IN de MySQL

Esto es lo mismo que se preguntó en esta pregunta:¿Puedo vincular una matriz a una condición IN()?

La respuesta allí fue que, para una lista de tamaño variable en in cláusula, deberá construir la consulta usted mismo.

Sin embargo, puede usar la lista separada por comas entre comillas usando find_in_set , aunque para grandes conjuntos de datos, esto tendría un impacto considerable en el rendimiento, ya que cada valor de la tabla debe convertirse en un tipo char.

Por ejemplo:

select users.id
from users
join products
on products.user_id = users.id
where find_in_set(cast(products.id as char), :products)

O, como tercera opción, podría crear una función definida por el usuario que divida la lista separada por comas para usted (cf. http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated-string-ids //a> ). Esta es probablemente la mejor opción de las tres, especialmente si tiene muchas consultas que dependen de in(...) cláusulas.