Javascript 如何在SQLite中只选择一项?(本地存储)
我试图通过更具体地使用SQL查询来改进代码: 以下代码有效,我可以处理结果。但可能不是最有效的: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
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背后的逻辑。仅仅通过阅读例子来学习对我来说有点难!谢谢你的解释!:)