我有一个包含多个列的数据库,并遵循“ name _ * ”语法。基本上我想在查询中使用UPDATE,以便它更新第一列,其值等于''。
到目前为止我找到了这个:
UPDATE table SET
`name_1` = CASE WHEN `name_1` = '' then 'something' else name_1 end,
`name_2` = CASE WHEN `name_2` = '' then 'something' else name_2 end,
`name_3` = CASE WHEN `name_3` = '' then 'something' else name_3 end
WHERE ID = '$id_example'
现在这将是完美的,除了它完成所有这些。我想只选择第一个,它等于''然后将其余部分设置为之前的状态。
答案 0 :(得分:2)
首先选择您想要的专栏,这是一个很好的做法。
“SELECT * FROM table WHERE value = first”
然后
您的更新查询
答案 1 :(得分:1)
UPDATE table SET
`name_1` = CASE WHEN `name_1` = '' then 'something' else name_1 end,
`name_2` = CASE WHEN `name_1` != '' and `name_2` = '' then 'something' else name_2 end,
`name_3` = CASE WHEN `name_1` != '' and `name_2` != '' and `name_3` = '' then 'something' else name_3 end
WHERE ID = '$id_example'