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

空の配列を持つレコードを取得するときに問題が発生します

    Rails 4では、User.where.not(id: [])を使用できます 正しい結果が得られます。生成するもの:

    SELECT "users".* FROM "users" WHERE (1 = 1)
    

    残念ながら、User.where('id NOT IN (?)', []) 同等である必要がありますが、そうではありません。それでも間違った結果が得られます:

    SELECT "users".* FROM "users" WHERE (id NOT IN (NULL))
    

    参照:

    • https://github.com/rails/rails/issues/778
    • https://github.com/rails/arel/commit/cbff1bcf
    • https://github.com/rails/rails/pull/8332
    • https://github.com/rails/rails/commit/8d02afeaee8993bd0fde69687fdd9bf30921e805


    1. WHERE IN...INTリストのDB.executeにパラメータを渡します

    2. SELECT * FROM table_name;のMySQL行の順序は何ですか?

    3. STR_TO_DATE()例– MySQL

    4. アイテムが別のテーブルに存在しないかどうかを確認する