我试图通过更具体的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
我尝试在查询和数组上使用不同的数字,但没有任何作用。我认为查询错误。
谢谢!
答案 0 :(得分:1)
将LIMIT 1
添加到您的查询中。这是一个例子:
SELECT * FROM foo LIMIT 1
答案 1 :(得分:1)
嗯,首先,你有一行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。