How to use WHERE IN in Rails 3 project using MySQL 2?

13,383

I'm a bit confused, but I think this is what you are looking for:

MyRecord.where(org_id: [1, 2, 3]).order('f4')

The in statement inside of where look for specific values for certain field, in the example above, the query will look for register in mY_records table where the org_id contains 1,2 or 3.

Check this out: http://guides.rubyonrails.org/active_record_querying.html

Update: I understand, Harish Shetty has the point.

Share:
13,383
user1971506
Author by

user1971506

Updated on June 06, 2022

Comments

  • user1971506
    user1971506 almost 2 years

    I am quite to new to Rails and have marginal experience with SQL-type languages.

    I am working on a Rails 3 project using a MySQL2

    I have here a generic SQL statement that I want to work on BOTH of our databases. Is there any way to do this through just the ActiveRecord functionality?

    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 
    );
    

    In other words, I am trying to execute a "WHERE IN" statement (and to be frank, I don't even know what a WHERE IN statement does, just that this answer does what I need: How do I (or can I) SELECT DISTINCT on multiple columns (postgresql)? ) To be more specific, I have to augment the following ActiveRecord function so that it does the above query:

      def MyRecordFunction
        MyRecords.where('org_id=?', self.org_id).order('f4')
      end
    

    Thank you.