Tôi đang tìm cách tạo truy vấn so sánh hai thuộc tính của cùng một bản ghi, mà không cần kéo bản ghi và so sánh sau truy vấn. Trường hợp cụ thể của tôi có khả năng sẽ có 10k hồ sơ, vì vậy việc lặp qua từng hồ sơ không phải là một lựa chọn.Rails truy vấn activerecord so sánh hai thuộc tính của cùng một bản ghi
Ví dụ: Tìm hồ sơ này bằng cách truy vấn .where updated_at == created_at
#<User id: 1, name: "xxx", created_at: "2012-07-01 12:00:00", updated_at: "2012-07-01 12:00:00">
Rails 3+, ActiveRecord, MySQL.
Cập nhật: Như commentor Matzi chỉ ra, sau đây là hợp lệ khi sử dụng SQLite, nhưng không mysql:
User.where("created_at == updated_at")
Giải Quyết: sai lầm đơn giản, ruby vs sql.
Sqlite thể sử dụng:
User.where("created_at == updated_at")
nhưng MySQL yêu cầu:
User.where("created_at = updated_at")
vấn đề là gì? Bạn có thể sử dụng '.where' để làm điều này. – Matzi
Đó là những gì tôi đã hy vọng, nhưng đã được tìm kiếm với các điều khoản sai. Bạn có nhớ cung cấp một ví dụ nhanh hoặc liên kết đến tài liệu có liên quan không? Cảm ơn trước – Joe
Điều này sẽ hoạt động: 'Users.where (" created_at == updated_at ")' – Matzi