隨機行基本上我有詞的數據庫,目標C - SQLite的選擇與另一個值
該數據庫包含一個rowid(主鍵),字和字長度表列。
我想選擇一個長度= x的隨機行並獲取該行的單詞。
這是針對iPhone遊戲項目的,查詢速度儘可能快(搜索是在遊戲中進行的)是高優先級。
例如:
SELECT * FROM WordsDB WHERE >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1;
這個查詢非常快,在選擇一個隨機行快了很多比ORDER BY RANDOM()LIMIT 1,但是,如果我添加字長查詢我得到的問題:
SELECT * FROM WordsDB WHERE length = 9 AND rowid >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1
認爲,通過隨機行不會總是有9
的長度我只是想知道什麼是這樣做的最快/最有效的方式。
感謝您的時間
注:2個%符號,因爲它是客觀c和查詢設置爲一個字符串。
有什麼問題? – hamstergene 2012-03-27 13:50:05