2011-10-03 88 views
0

如何返回SQLite表中的隨機記錄。例如,我有一張有750條記錄的表格,我想返回第657條記錄。 (任何記錄都可以)。什麼是SQL語法?我有一個autoincrementing字段作爲我的Id主鍵,但我不想使用關鍵字段,因爲不推薦使用id。我將在Android應用程序中搜索數據庫。sqlite返回表中的隨機記錄

TIA

回答

2

試試這個:

SELECT * FROM table ORDER BY RANDOM() LIMIT 1; 
+0

請注意,此方法不能縮放。對於每一行,都會生成一個隨機值,並且該表按此值排序。換句話說,如果有很多行,它會變得很慢。 –

0

你可以嘗試這樣的事情,應該是更有效的

select * from table 
    where rowid = 
     (select round(abs(random()/9223372036854775807.0)*max(rowid)+1) from table); 

如果您已刪除的行這個選擇可能不返回行,那麼如果是這種情況,您可能需要重新查詢。