我有field_id和值{"1379" => 1, "1381" => "test"}
的哈希值,我想搜索带有这些field_ids的字段。我在想两个解决方案:
答案 0 :(得分:1)
第二个当然,使用IN
时只会执行一个查询,而不是为单个记录运行find
。
Field.where(id: field_ids)
上述查询只会执行一次
SELECT * from where fields.id IN (field_ids)
但是在第一个的情况下,它就像
SELECT * from where fields.id = field_id_1;
SELECT * from where fields.id = field_id_2;
SELECT * from where fields.id = field_id_3;
SELECT * from where fields.id = field_id_4;
...
当params hash很大时,这可能会非常昂贵。
希望有所帮助!