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

如何用不同值批量更新多行数据?MySQL语法及Node.js实现疑问

批量更新不同行的不同字段值方案

你不需要在Node.js里循环逐行执行更新,单条SQL就能搞定。你原来的SQL报错是因为names = ('name1', 'name2')的写法逻辑错误——数据库没法把数组里的两个值对应到id=1和id=2的两行上。

下面是两种可行的正确写法:

通用兼容写法(适用于MySQL、PostgreSQL、SQL Server等多数数据库)

用CASE WHEN语句匹配id和对应的新值:

UPDATE UsersTable
SET `names` = CASE 
    WHEN id = 1 THEN 'name1'
    WHEN id = 2 THEN 'name2'
END
WHERE id IN (1, 2);

这个语句会仅更新id为1和2的行,根据id匹配对应的names值,不会影响其他数据。

MySQL专属高效写法(适合批量更新大量行)

通过构造临时数据集关联原表更新:

UPDATE UsersTable u
JOIN (
    SELECT 1 AS id, 'name1' AS new_name
    UNION ALL
    SELECT 2 AS id, 'name2' AS new_name
) t ON u.id = t.id
SET u.`names` = t.new_name;

这种方式在需要更新几十上百行时,比CASE WHEN更易维护,直接在临时数据集里添加新的id和对应值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:40:24