webkit中的sqlite是否支持RANDOM()函数?

webkit中的sqlite是否支持RANDOM()函数?,sqlite,random,safari,cordova,Sqlite,Random,Safari,Cordova,我正在为iOS编写一个基于Phonegap的应用程序,并试图通过Javascript从我的SafariWebKit数据库中随机返回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()

我正在为iOS编写一个基于Phonegap的应用程序,并试图通过Javascript从我的SafariWebKit数据库中随机返回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);

如果我省略了“orderbyrandom()”语句,这会使我相信这是不受支持的。有没有一种随机方法可以使用,或者我必须生成10个随机数并调用10个数据库?!谢谢,Nick

临时解决方案,以防该版本中的ORDER BY RANDOM()不起作用:

"SELECT *, RANDOM() AS rnd FROM SBA_TABLE
WHERE (cat_gastrointestinal = 1)
AND (answered_correctly = 0 OR answered_correctly = 1 OR answered_correctly = 2)
ORDER BY rnd LIMIT 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有一个函数,语法正确。。。使用“随机”时会发生什么?是否引发了错误,或者它没有随机化,或者没有返回行?它没有返回行。我决定将结果拉入一个数组,并用一个随机函数将其洗牌,如下所述:但是如果有人知道随机SQL函数,这会更干净。你有什么版本的SQLite?这里有一个关于返回版本的页面:作为一个健全的检查,你能将其更新到3.7.5吗?嗨,谢谢你的帮助,但最终我的应用程序被部署到iPhone上,所以我依赖于苹果部署/实施的版本。不,这不起作用。Webkit禁止使用random()函数。另见@Ignitor谢谢。那么,在这个问题上,洗牌法是最好的方法。事实上,更干净,即使这是一个多一点的工作。很好,但这将得到一个随机位置的连续10个条目集。对于完全随机的条目,你能传递10个随机数吗?