在数据库中有2行数据,需要它的字段shebei_id关联一个数字1,2,3,4,5,6,....,批量执行
-- ===================== 只需修改这2个参数 =====================
SET @start_id = 1115; -- 要填充的起始shebei_id(比如872、1051)
SET @end_id = 1122; -- 要填充的结束shebei_id(比如1048、1111)
-- ============================================================
-- 方式1:用预处理语句解决LIMIT不支持变量的问题(推荐,适配所有MySQL版本)
SET @sql = CONCAT('
UPDATE cb_shebei_sysdisk t1
JOIN (
SELECT
id, -- 替换为你的表的主键字段(如id/sysdisk_id)
(', @start_id, ' - 1) + CEIL(ROW_NUMBER() OVER (ORDER BY type) / 2) AS new_shebei_id
FROM cb_shebei_sysdisk
WHERE type = ''SSD 960G''
AND shebei_id IS NULL -- 只更新空值,避免覆盖已有数据
LIMIT ', (@end_id - @start_id + 1) * 2, ' -- 自动计算总行数
) t2 ON t1.id = t2.id
SET t1.shebei_id = t2.new_shebei_id;
');
-- 执行拼接好的SQL
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
最近访问时间:2026-01-25 00:44:26