我有以下查询
friends_ids = [1,2,3]
Friend.where("user_id = ? or friend_id = ?", friends_ids, friends_ids)
但是,当我运行它时,我得到了
PG::DatatypeMismatch: ERROR: argument of OR must be type boolean, not type integer
LINE 1: ...CT "friends".* FROM "friends" WHERE (user_id = 2,3 or frien...
很明显OR子句不喜欢数组,所以如何解决这个问题呢?
答案 0 :(得分:4)
我认为您需要in
,而不是=
:
friends_ids = [1,2,3]
Friend.where("user_id in (?) or friend_id in (?)", friends_ids, friends_ids)