作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 Rails 的新手,对 SQL 类语言的经验很少。
我正在使用 MySQL2 开发 Rails 3 项目
我这里有一个通用的 SQL 语句,我想在我们的两个数据库上都使用它。有什么方法可以仅通过 ActiveRecord 功能来做到这一点吗?
SELECT * FROM MyRecords
WHERE (f1, f2, f3, f4) IN (
SELECT f1, f2, f3, f4
FROM MyRecords
GROUP BY f1, f2, f3, f4
HAVING count(*) = 1
);
换句话说,我正在尝试执行“WHERE IN”语句(坦率地说,我什至不知道 WHERE IN 语句的作用,只是这个答案满足了我的需要:我如何 (或者我可以)在多列上选择 DISTINCT(postgresql)吗?)更具体地说,我必须增加以下 ActiveRecord 函数,以便它执行上述查询:
def MyRecordFunction
MyRecords.where('org_id=?', self.org_id).order('f4')
end
谢谢。
最佳答案
我有点困惑,但我认为这就是您要找的:
MyRecord.where(org_id: [1, 2, 3]).order('f4')
where 中的 in 语句查找特定字段的特定值,在上面的示例中,查询将查找 mY_records 表中的 register,其中 org_id 包含 1,2 或 3。
检查一下:http://guides.rubyonrails.org/active_record_querying.html
更新:我明白了,Harish Shetty 说的有道理。
关于mysql - 如何使用 MySQL 2 在 Rails 3 项目中使用 WHERE IN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15707910/
我是一名优秀的程序员,十分优秀!