sql >> データベース >  >> RDS >> Mysql

MySQLINステートメントのPDOバインディング値

    これは、この質問で尋ねられたものと同じです:配列を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つの中で最良のオプションです。 条項。



    1. Where句のSQLRow_Number()関数

    2. 未定義の関数mysql_connect()

    3. 私のお気に入りのPostgreSQL拡張機能-パート2-

    4. ExcelでSQLiteクエリ結果を自動的に開く