以下是我一直在努力的示例表
╔════╦══════════════╦══════╗
║ KID║ REVCA ║ REDO ║
╠════╬══════════════╬══════╣
║ 4 ║ 43453453345 ║ 0 ║
║ 2 ║ NULL ║ 0 ║
║ 5 ║ NULL ║ 0 ║
║ 7 ║ 5566533 ║ 0 ║
╚════╩══════════════╩══════╝
我通过另一个表中的选择插入 REVCA 值。 对于我得到的每个 NULL 值,我需要将 REDO 更新为 1 。
以下是预期输出
╔════╦══════════════╦══════╗
║ KID║ REVCA ║ REDO ║
╠════╬══════════════╬══════╣
║ 4 ║ 43453453345 ║ 0 ║
║ 2 ║ NULL ║ 1 ║
║ 5 ║ NULL ║ 1 ║
║ 7 ║ 5566533 ║ 0 ║
╚════╩══════════════╩══════╝
我目前正在使用更新查询
UPDATE \`REVCA \` SET \` REDO\` = 1
WHERE \`REVCA \`= 0;
我正在寻找替代方案,因为数据库的大小非常大。 我在插入过程中需要它。
我只能使用普通的sql来达到目的 请帮我完成同样的事情。 谢谢!
答案 0 :(得分:2)
简单如下:
update table set redo = 1 where revca is null
插入时:
insert into table(kid, revca, redo)
select @kid, @revca, case when @revca is null then 1 else 0 end