学过mysql的童鞋都知道,以下一条SQL语句就可实现批量删除的功能
// 批量删除id为1 2 和 4 的用户(用户表名为tb_user)
delete from tb_user where id in(1,2,4);
但是,当我项目中,实现批量删除时,要么只能删除一个,要么报错,代码如下
// 引入mysql模块
let mysql = require('mysql');
// 创建连接池
let pool = mysql.createPool({ host:"localhost", user:"root",
password:"root", database:"db_users"});
router.post('/api/deleteMoreUser', function (req, res) {
let array = req.body.arr // 前端传过来的要删除的用户id组成的数组
pool.getConnection((err,connection)=>{
let sql = 'delete from tb_user where id in (?)'
connection.query(sql,[...array], (err, result) => {
console.log(result)
})
});
}
});
以上方法只能删除一个,原因是一个占位符(?),只能替换[...array]中的第一个id值
仅仅依靠我掌握的上述那一行批量删除的sql语句,我想到了两个解决办法,可能会存在我不知道的某些问题,但是至少目前的批量删除功能实现了,以下代码,仅供参考
1