我试图从我之前输入的sqlite3数据库中获取所有/多行数据并确保它(数据)存在。使用db
作为数据库对象,我的尝试看起来像这样:
db.get
(
'SELECT * FROM my_table',
(err, rows) =>
{
if(rows && err === null)
{
console.log(rows);
}
else
{
console.log('Error', err);
}
}
)
上面总是返回一个包含1行数据的对象。
答案 0 :(得分:8)
这里的问题是db.get()
只返回结果集中的第一行。来自documentation:
使用指定的参数运行SQL查询,然后使用第一个结果行调用回调。
如果要返回整个结果集,请改用db.all()
:
db.all("SELECT * FROM my_table", function(err, rows) {
rows.forEach(function (row) {
console.log(row.col1, row.col2); // and other columns, if desired
})
});
你也可以在这里使用db.each()
:
db.each("SELECT * FROM my_table", function(err, row) {
console.log(row.col1, row.col2); // and other columns, if desired
});