在数据库中有2行数据,需要它的字段shebei_id关联一个数字1,2,3,4,5,6,....,批量执行
xuexi 2026-01-20 17:30:30 发表在:PHP 查看数:30
-- ===================== 只需修改这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
知识库:414条鸣谢:TAY  备案号:蜀ICP备2024090044号-1