一尘不染

使用SQL IN和SQL OR运算符的Rails 3 ActiveRecord查询

sql

我正在使用“ where”语法编写一个Rails 3 ActiveRecord查询,该查询同时使用SQL IN和SQL
OR运算符,并且无法弄清楚如何将它们一起使用。

这段代码有效(在我的用户模型中):

Question.where(:user_id => self.friends.ids)
#note: self.friends.ids returns an array of integers

但是这段代码

Question.where(:user_id => self.friends.ids OR :target => self.friends.usernames)

返回此错误

syntax error, unexpected tCONSTANT, expecting ')'
...user_id => self.friends.ids OR :target => self.friends.usern...

知道如何在Rails中编写此代码,或者原始的SQL查询应该是什么?


阅读 171

收藏
2021-03-17

共1个答案

一尘不染

原始SQL

SELECT *
FROM table
WHERE user_id in (LIST OF friend.ids) OR target in (LIST OF friends.usernames)

每个列表逗号分开。我不太了解Rails ActiveRecord的东西。对于AND,您只需要在这两个条件之间加上一个逗号,但对OR则为idk

2021-03-17