2012-07-24 62 views
0

我有一个Rails 3.2应用程序,我试图抓住一组用户。我的Rails的查询代码如下所示:使用“WHERE IN”的Rails 3.2查询不使用我的主键作为索引

@users = User.where("user_id IN (?)", foo) 

生成的SQL语句:

SELECT 'users'.* FROM 'users' WHERE id IN (1, 2, 3, 4) 

当我运行此查询的解释,它是在我的用户表检索所有行。它列出possible_keys字段下的PRIMARY,但密钥显示为空。

如果我删除了“IN(?)”的一部分和拉一条记录:

@user = User.where("user_id = ?", bar) 

使用主键索引和搜索产生

SELECT 'users'.* FROM 'users' WHERE id = 1 

然后执行查询只有一行。

任何想法为什么这不工作在我的第一个例子?我在Rails中错误地构造了这个查询吗?

回答