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))) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |