随机行基本上我有词的数据库,目标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