我试图通过更具体的 SQL 查询来改进我的代码:
以下代码有效,我可以处理结果。但可能不是最有效的:
function queryDB(tx) {
tx.executeSql('SELECT * FROM foo', [], querySuccess);
}
function querySuccess(tx, results) {
console.log(results.rows.item(0).name);
}
OUTPUT: JOHN
所以当我尝试时:
function queryDB(tx) {
tx.executeSql('SELECT id FROM foo WHERE id = 1', [], querySuccess);
}
function querySuccess(tx, results) {
console.log(results.rows.item(0).name);
}
OUTPUT: undefined
我试过在查询和数组上使用不同的数字,但没有任何效果。我假设查询是错误的。
谢谢!
最佳答案
好吧,首先,您有 ID 为 1 的行吗?
其次,因为您只选择了 id
在你的第二个声明中的列中,为什么你认为你将能够访问 name
?
第三,将查询限制在没有 order by
的第一行是没有意义的条款。如果没有该子句,SQL 可以按任意顺序自由返回行。
如果您真的想要表中第一个 ID 的名称,类似于:
select name from foo order by id limit 1
应该可以解决问题。很少有有意义的用例 select *
.
如果你想要第四行,使用类似的东西:
select name from foo order by id limit 1 offset 3
参见 here了解更多详情。
关于javascript - 如何在 SQLite 中只选择一个项目? (本地存储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257031/