1

我试图用 COUNT 随机选择表中的行

tx.executeSql("SELECT COUNT(*) FROM TABLE" , [], querySuccess, errorCB);

但我不知道如何找回它。(results.rows.length返回 1,我有 5 行。)我遵循了一些建议,但我想知道是否有更好的解决方案。

  1. 数数
  2. 然后 var numRand = Math.floor(Math.random()*(TOTALROW+1))
  3. 查询特定行

更新

 function queryDB(tx) {
        tx.executeSql("SELECT COUNT(1) FROM WORD" , [], querySuccess, errorCB);
    }

function querySuccess(tx, results) {
   alert(results.rows.item(0));
}

对于 results.rows(0).item(0),它显示“Uncaught TypeError: Property 'rows' of object # is not a function”。对于 results.rows.item(0),它显示警报“[object OBJECT]”。

4

1 回答 1

2

如果您尝试从数据库中选择随机行,请尝试:

SELECT col1, col2
FROM YourTable
ORDER BY RANDOM()
LIMIT 1

这将带回一个随机行。这将让您跳过初始调用来确定表的记录数,并自己选择一个随机值。


似乎某些版本的 sqlite 禁用了 Random,在这种情况下,我认为您可能希望找到表中的行数:

SELECT COUNT(1)
FROM Table

然后你会想在你的代码中选择一个随机数,并查询该记录。

目前您的results.rows.length returns 1因为 SELECT COUNT(*) ... 将仅返回一行数据,列是表中的行数。

于 2012-10-18T03:36:46.553 回答