0

我有这个疑问,

User.where('name LIKE ?', "%#{term}%").where(group: "student").limit(10)

我有这种偷偷摸摸的怀疑,我可以以某种方式改进它,主要是允许一个 where 方法而不是两个,但是任何尝试都会导致 sql 查询无法识别 group 字段。到目前为止,上述方法有效,但我想知道这是否可以改进以及如何改进。

另外,除了美观之外,我是否应该担心查询中有多个 where 方法?

4

2 回答 2

1

多个 where 不会对性能产生任何明显影响。DB只被击中一次。

带有“LIKE”的查询本来就很慢。

于 2013-04-17T00:51:26.123 回答
1

您拥有的当前代码很好,并且比组合对where. 正如其他评论者/答案所指出的,多次调用where不会影响数据库查询的总速度。

如果您想知道如何将查询更改为单个where调用,请尝试以下操作

User.where('name LIKE ? AND group = ?', "%#{term}%", 'student').limit(10)
于 2013-04-17T07:58:14.023 回答