Phonegap不支持sql Rand(),该怎么办?

时间:2011-10-10 21:50:45

标签: sqlite random cordova

有替代方案吗?

这是我的代码

function loadQ() {
   db.transaction(function(t) {
     t.executeSql('SELECT * FROM q ORDER BY RAND()', [], qDataHandler, errorHandler);
   });
};

现在,这不起作用。如果我删除Rand()并用LIMIT 1替换它,它可以工作。但我希望结果是随机的。

我正在考虑对总行运行查询,然后创建一个从0到总行中选择数字的函数,然后将我的loadQ中的结果用作ID。但我认为这是一项乏味的工作。我想知道你是否有更好的想法?

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果您使用随机值作为PK,如果您的行中有间隙,则会失败。

这是一个更好的解决方案:

  1. 查询COUNT()行。

  2. 生成从0到计数的随机数

  3. 使用LIMIT 1 OFFSET ?

  4. 中的结果