加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在[IN]的rails with或子句中搜索

发布时间:2020-12-17 03:28:51 所属栏目:百科 来源:网络整理
导读:我在rails中使用此查询 这里:@album_ids,@ country_ids是Arrays @audios= Audio.where({:album_id = @album_ids,:country_id = @country_ids})It produces following SQL: Audio Load (0.3ms) SELECT `audios`.* FROM `audios` WHERE `audios`.`album_id` I
我在rails中使用此查询

这里:@album_ids,@ country_ids是Arrays

@audios= Audio.where({:album_id => @album_ids,:country_id => @country_ids})
It produces following SQL:

 Audio Load (0.3ms)  SELECT `audios`.* FROM `audios` WHERE `audios`.`album_id` IN (1,2) AND `audios`.`country_id` IN (1,2)

但我想将查询生成为:

Audio Load (0.3ms)  SELECT `audios`.* FROM `audios` WHERE `audios`.`album_id` IN (1,2) OR `audios`.`country_id` IN (1,2)

或者而不是AND

提前致谢

解决方法

对于Rails 3(使用AREL),

at = Audio.arel_table
audios = Audio.where(at[:album_id].in(@album_ids).or(at[:country_id].in(@country_ids)))

# Audio Load (0.3ms)  SELECT `audios`.* FROM `audios` WHERE ((`audios`.`album_id` IN (1,2)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读