我正在为 iOS 编写一个基于 Phonegap 的应用程序,并试图通过 Javascript 从我的 Safari webkit 数据库返回 10 个随机行。我的查询是:
queryString = "SELECT * FROM SBA_TABLE
WHERE (cat_gastrointestinal = 1)
AND (answered_correctly = 0 OR answered_correctly = 1 OR answered_correctly = 2)
ORDER BY RANDOM() LIMIT 10";
tx.executeSql(queryString, [], querySuccess5, errorCB);
如果我省略“ORDER BY RANDOM()”语句,这让我相信这是不受支持的,那么这将起作用。有没有我可以使用的 RANDOM 方法,或者我是否必须生成 10 个随机数并进行 10 次数据库调用?!谢谢,尼克
最佳答案
我刚刚遇到了同样的问题,我用这样的解决方法解决了它:
seed = (Math.random() + 1) * 1111111;
queryString = "SELECT * FROM SBA_TABLE
WHERE (cat_gastrointestinal = 1)
AND (answered_correctly = 0 OR answered_correctly = 1 OR answered_correctly = 2)
ORDER BY ROWID * ? % 10000 LIMIT 10";
tx.executeSql(queryString, [ seed ], querySuccess5, errorCB);
在查询中使用 Javascript Math.random() 函数和对表 ROWID 取模。
关于sqlite - webkit 中的 sqlite 是否支持 RANDOM() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5588563/