Nodejs Mysql 执行多条SQL语句
最近用 Nodejs + Express + Mysql 写接口碰到一个需要四表联查的接口。。。我特么只会连两张表啊~!网上百度了一波四表联查,由于我接口的数据相对比较复杂,果不其然,最终以凉凉告终,生活的压力最终迫使我向 SQL 妥协了。于是换了个思路,执行多条 SQL ,嘻嘻 ,特么成功啦~!!

Nodejs Mysql 默认情况下不允许执行多条查询语句,要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能:

var connection =  mysql.createConnection({ multipleStatements: true });
这一功能打开以后,就可以同时使用多条查询语句:

router.get("/test", function (req, res) {
    let params = req.query;
    let query = "SELECT * FROM table1 WHERE id=?; SELECT * FROM table2 WHERE aid=?";
    let queryParams = [params.id, params.aid];

    CONNECTION = mysql.createConnection(CONFIG);
    CONNECTION.connect();
    CONNECTION.query(query, queryParams, function (err, result) {
        if (err) {
            console.log('[SELECT ERROR] - ', err.message);
            res.send({code: -1, msg: "服务异常"});
            return;
        }

        console.log(result[0]);
        console.log(result[1]);

        res.send({code: 0, result: result});
    });
    CONNECTION.end();
});
连接数据库配置

let CONFIG: {
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'testDatabase',
    timezone: "08:00",
    multipleStatements: true // 开启同时执行多条SQL
};

参考: https://www.lihuyong.com/archives/1267

posted on 2023-01-06 18:18  文种玉  阅读(704)  评论(0编辑  收藏  举报