前言
原本前台使用的就是一条一条删除数据,当多选时调用删除方法并不能成功,查看发现SQL批量删除语句和单个删除语句不太一样,于是记录一下学习过程。
一、一次删除一条数据
SQL语句如下:
DELETE FROM 表名 WHERE 属性名 =?
//例如:DELETE FROM `sp_goods` WHERE (`goods_id`='927')
应用到express中去删除数据库中的数据,根据ID删除单条数据。
代码如下(示例):
//根据传过来的id删除数据库中的数据
var dbConfig = require('../util/dbconfig');
let delUser=async(req,res)=>{
let { id } = req.body;
console.log(id)
let sql = `DELETE FROM user WHERE id=?`;
let sqlArr = [id];
dbConfig.sqlConnect(sql,sqlArr,(err,result)=>{
if(err) throw err; //打印错误信息
if(result.affectedRows){//执行成功
res.send({
code:200,
status: true,
msg: "del success!",
});
}else{
res.send({
code:400,
status: false,
msg: "fail!"
});
}
})
}
//将接口暴露出去
module.exports = {delUser};
二、一次同时删除多条数据
SQL语句如下:
delete from 表名 where 属性名 in (?)
//例如删除user表中ID为1,3,5的数据
delete from user where id in (1,3,5)
此时前台传过来的ID不再是单个,而是这种如1,2,3用多个用逗号隔开的格式,书写接口方法删除数据库数据。
代码如下(示例):
//根据传过来的id(如1,2)删除数据库中的数据
//传过来的id是 1,2,4这种逗号分隔的格式
var dbConfig = require('../util/dbconfig');
let delUser=async(req,res)=>{
let { id } = req.body;
console.log(id)
// 删除1~n条
let sql = `DELETE FROM user WHERE id in (${req.body.id})`;
let sqlArr = [];
dbConfig.sqlConnect(sql,sqlArr,(err,result)=>{
if(err){//执行失败
res.send({
code: 400,
msg: '删除失败',
data: err
})
}else {
res.send({
code: 200,
msg: '删除成功',
data:result
})
}
})
}
//将接口暴露出去
module.exports = {delUser};
总结
以上就是这次记录的内容,删除一条或者多条数据的方法大同小异,需要的根据自己项目选择,如果前端涉及多选删除的话可选用第二种删除多条数据的方法,只要处理好传过来的ID就行啦。
🆗,就到这啦!