2012-01-17 20 views
0

忽略查詢的低效率是否存在用於抽象跨數據庫的rand()之間差異的現有Rails包裝器?有沒有辦法在不同的數據庫中抽象rand/random的不同形式?

的MySQL:

User.first(order: 'random()') 

Postgres的:

User.first(order: 'rand()') 

我可以創造我自己的不斷RAND_STR但如果一個已經存在的不知道?

請注意 - 這不是一個效能問題

我知道查詢是低效的,我只是想知道抽象

回答

0

我敢肯定,我用不過現在似乎已經消失有這個問題。 SQLlite和Postgres都接受RANDOM()。不確定這是否是Rails的手藝,但不管它現在是否修復的原因。

0

你可以這麼像User.offset(rand(User.count)).first,但也將結束執行兩個查詢。除此之外,Rails沒有任何內置的方法來做到這一點,我知道。

Rails 3: Get Random Record

+0

感謝 - 這不是如何獲得我感興趣的隨機記錄,雖然它是否存在一個Rails變量,用於存儲底層數據庫的rand/random的正確形式 – 2012-01-17 16:29:01

+0

不是我所知道的;軌道文件沒有顯示隨機記錄。 – 2012-01-17 16:31:18

相關問題