我有这个查询,
User.where('name LIKE ?', "%#{term}%").where(group: "student").limit(10)
我怀疑我可以以某种方式改进它,主要是允许在一个方法而不是两个但是任何尝试都会导致sql查询无法识别组字段。到目前为止,上述工作,但我想知道这是否可以改进,以及如何。
另外,除了审美外观之外,我是否应该担心查询中有多个where方法?
答案 0 :(得分:1)
多个地方不会对性能产生任何明显影响。数据库只被击中一次。
“LIKE”的查询本质上很慢。
答案 1 :(得分:1)
您拥有的当前代码很好,并且比将where
的调用组合起来更具可读性。正如其他评论者/答案所指出的,多次调用where
不会影响数据库查询的总速度。
如果您想知道如何将查询更改为单个where
来电,请尝试以下
User.where('name LIKE ? AND group = ?', "%#{term}%", 'student').limit(10)