我可以将表中的所有负值更新为一列的NULL:
UPDATE table_1
SET var1 = NULL
WHERE var1 < 0
;
这很棒,但我有200列,我想将此UPDATE应用于。
我可以明确地运行这个相同的范例200次,一次更新一个变量。但是,这意味着我必须使用大约1,000行代码来完成它。
如果我使用if
,我可能会在接近200行代码中完成它。但这仍然让我感到湿冷和不满意。
当我想在R中做这样的事情时,我可以使用df[df<0] <- NA
这样的东西,只需几次按键,我就完成了。
在MySQL中,有没有办法以简洁,优雅和智能的方式解决这个问题?
答案 0 :(得分:1)
您可以有条件地更新列,在不满足条件时使用IF()
将原始值分配给它们:
UPDATE table_1
SET var1 = IF(var1 < 0, NULL, var1),
var2 = IF(var2 < 0, NULL, var2)
...