You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何将逗号分隔SKU字符串转为SQL IN子句可用列表

解决方案

你可以通过以下步骤把逗号分隔的SKU字符串转换成适合SQL IN 子句的参数:

  • 先将字符串按逗号分割成数组,同时过滤掉可能的空值(比如首尾空格或多余逗号产生的空字符串)
  • 利用数据库驱动的参数化查询能力,直接将数组作为参数传入,避免SQL注入风险

完整代码示例:

app.delete("/delete/:sku", (req, res) => {
  // 分割SKU字符串并过滤空值
  const skuList = req.params.sku.split(',').filter(sku => sku.trim() !== '');
  
  // 处理空数组的情况(避免执行无意义的删除)
  if (skuList.length === 0) {
    return res.status(400).json({ message: "无效的SKU列表" });
  }

  // 使用参数化查询,数据库驱动会自动处理IN子句的参数
  db.query('DELETE FROM products WHERE sku IN (?)', [skuList], (err, result) => {
    if (err) {
      return res.status(500).json({ error: err.message });
    }
    res.status(200).json({ message: `成功删除 ${result.affectedRows} 条记录` });
  });
});

关键说明:

  • split(',') 把逗号分隔的字符串拆成数组,filter 用来清理无效的空SKU值
  • 直接将数组 skuList 作为参数传入 db.query,大多数Node.js数据库驱动(如mysql2、pg)会自动将数组转换为IN子句所需的多个占位符和对应参数,彻底避免SQL注入
  • 增加了空数组判断,防止执行WHERE sku IN ()这种语法错误的SQL语句

内容的提问来源于stack exchange,提问作者zzzzzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:15:34