これは、この質問で尋ねられたものと同じです:配列をIN()条件にバインドできますか?
答えは、in
の可変サイズのリストについてでした。 句を使用する場合は、自分でクエリを作成する必要があります。
ただし find_in_set
ただし、大規模なデータセットの場合、テーブル内のすべての値をchar型にキャストする必要があるため、パフォーマンスにかなりの影響があります。
例:
select users.id
from users
join products
on products.user_id = users.id
where find_in_set(cast(products.id as char), :products)
または、3番目のオプションとして カンマ区切りのリストを分割するユーザー定義関数を作成できます( http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated-string-ids /
)。これは、特にin(...)
に依存するクエリが多数ある場合は、おそらく3つの中で最良のオプションです。 条項。