Mysql UPDATE连续第一列不等于''

时间:2012-10-03 01:49:52

标签: mysql

我有一个包含多个列的数据库,并遵循“ 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'

现在这将是完美的,除了它完成所有这些。我想只选择第一个,它等于''然后将其余部分设置为之前的状态。

2 个答案:

答案 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'