我有一个 Rails 3.2 应用程序,我试图在其中获取一组用户。我的 Rails 查询代码如下所示:
@users = User.where("user_id IN (?)", foo)
生成以下 SQL:
SELECT 'users'.* FROM 'users' WHERE id IN (1, 2, 3, 4)
当我对此查询运行解释时,它正在搜索我的用户表中的所有行。它PRIMARY
在该possible_keys
字段下列出,但键显示为空。
如果我删除“IN (?)”部分并只提取一条记录:
@user = User.where("user_id = ?", bar)
生成
SELECT 'users'.* FROM 'users' WHERE id = 1
然后使用主键作为索引执行查询,只搜索一行。
知道为什么这在我的第一个示例中不起作用吗?我是否在 Rails 中错误地构造了这个查询?