Express使用MySQL批量删除数据(一次删除多条数据)

本文介绍了在Express中如何使用MySQL进行数据的批量删除。针对前端多选删除场景,讲解了从单条删除到批量删除的SQL语句及Express接口实现,强调了处理前端传来的逗号分隔ID的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

原本前台使用的就是一条一条删除数据,当多选时调用删除方法并不能成功,查看发现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就行啦。

🆗,就到这啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IsHuanli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值