如何用多个where方法改进LIKE查询

时间:2013-04-16 23:48:28

标签: sql ruby-on-rails ruby-on-rails-3 activerecord

我有这个查询,

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

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

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

2 个答案:

答案 0 :(得分:1)

多个地方不会对性能产生任何明显影响。数据库只被击中一次。

“LIKE”的查询本质上很慢。

答案 1 :(得分:1)

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

如果您想知道如何将查询更改为单个where来电,请尝试以下

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