【问题标题】:How to SELECT / get all rows with node-sqlite3?如何使用 node-sqlite3 选择/获取所有行?
【发布时间】:2017-08-10 11:05:24
【问题描述】:

我正在尝试从我之前输入的 sqlite3 数据库中获取所有/多于一行的数据,并确保它(数据)存在。使用db 作为数据库对象,我的尝试如下所示:

 db.get
    (
        'SELECT * FROM my_table',
        (err, rows) =>
        {
            if(rows && err === null)
            {
                console.log(rows);
            }
            else
            {
                console.log('Error', err);
            }
        }
    )

Above 总是返回带有 1 行数据的单个对象。

【问题讨论】:

    标签: javascript node.js node-sqlite3


    【解决方案1】:

    这里的问题是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
    });
    

    【讨论】:

    • 谢谢! db.all 完成了这项工作,我应该更加关注文档。
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2013-03-23
    • 2012-07-18
    相关资源
    最近更新 更多