> Thanks! That did the trick. :) But I'm still curious as to how you > would generally abstract away something you want to do independent of > the database.
By doing exactly what you just did. Or sticking to pure SQL (can't think of the standard, but there is one) and using nothing else. > On Mar 16, 1:34 pm, Philip Hallstrom <[email protected]> wrote: >>> I'm trying to pick some random rows from my database; for >>> development >>> I use SQLite and for production I use MySQL. However, as the title >>> suggests, they both have different ways to get random rows. How >>> can I >>> abstract this away? >> >> Psuedo-ally: >> >> - get the total number of rows via Foo.count. >> - Use ruby to get a random number b/n 0 and the total. >> - Construct a query using :limit => 1 and :offset => random_number. >> >> There's probably an edge case where you might fall off the end in >> there, but I'll let you confirm that. >> >> You don't want to use RAND()/RANDOM() if you can avoid it as mysql >> will fetch *every* row, assign each a random number sort it, and >> return the first. Not efficient with many rows. >> >> -philip > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

