方案一:
SELECT * FROM 表名 ORDER BY RANDOM() LIMIT 1
該方法需對所有記錄進行一次排序王悍,性能很差荷逞,1百萬條記錄時可能需幾秒時間恐锦。
方案二:
SELECT * FROM 表名 WHERE rowid IN (一組隨機的行ID)
該方法性能很好六水,rowid是sqlite表的一個隱藏字段增炭。用程序獲得一組行id,計算方法是在1到最大行id之間隨機的獲取搬俊,不過該方法有缺陷紊扬,因為rowid可能有空檔,就是說唉擂,可能隨機獲取的行id沒有對應的記錄餐屎。