1

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

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

4

2 回答 2

2

首先选择您想要的列,这将是一个很好的做法。

“SELECT * FROM table WHERE value= first”

然后

您的更新查询

于 2012-10-03T01:57:01.890 回答
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'
于 2012-10-03T01:55:17.227 回答