Javascript 如何在SQLite中只选择一项?(本地存储)

Javascript 如何在SQLite中只选择一项?(本地存储),javascript,html,sqlite,cordova,Javascript,Html,Sqlite,Cordova,我试图通过更具体地使用SQL查询来改进代码: 以下代码有效,我可以处理结果。但可能不是最有效的: function queryDB(tx) { tx.executeSql('SELECT * FROM foo', [], querySuccess); } function querySuccess(tx, results) { console.log(results.rows.item(0).name); } OUTPUT: JOHN 因此,当我尝试: function

我试图通过更具体地使用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 
我尝试在查询和数组中使用不同的数字,但没有任何效果。我认为这个问题是错误的


谢谢

在查询中添加
限制1
。下面是一个例子:

SELECT * FROM foo LIMIT 1
首先,你有一行的ID是1吗

其次,既然您在第二条语句中只选择了
id
列,那么您为什么认为您能够访问
name

第三,将查询限制在没有
orderby
子句的第一行是没有意义的。SQL可以自由地按照它想要的任何顺序返回行,而无需使用该子句

如果确实需要表中第一个ID的名称,请执行以下操作:

select name from foo order by id limit 1
select name from foo order by id limit 1 offset 3
我们应该做到这一点。在很少的用例中,执行
select*
是有意义的

如果您想要第四行,请使用以下命令:

select name from foo order by id limit 1
select name from foo order by id limit 1 offset 3

有关更多详细信息,请参阅。

您正在选择id,但您的输出是名称如果我要选择第4行,该怎么办?我应该使用限制4吗?还是有更直接的方法?@ricardolobo使用
限制3,1
(第一个是偏移,第二个是限制)它可以工作!谢谢。我还在搞清楚SQL背后的逻辑。仅仅通过阅读例子来学习对我来说有点难!谢谢你的解释!:)