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
};