这个mysql更新语句怎么写,请高手帮帮忙?

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:37:03
有一表talbename有三字段id, name, value

现按下列情况更新value值,
当value字段不为空值时,不更新value:
update tablename set name='$name' where id='$id';

当value字段为空值时:
update tablename set name='$name', value='$value' where id='$id';

如果把两种情况合并作一条语句,应该怎么写?MYSQL的.
我找到答案了:
update tablename set name='$name', value=CASE WHEN value IS NULL THEN '$value' ELSE value END where id='$id';

我觉得这个VALUE的值在程序里判断比较好。MYSQL5以下版本好像不支持存储过程

CASE 函数用于计算多个条件并为每个条件返回单个值。CASE 函数通常的用途是使用可读性更强的值替换代码或缩写。

再加条件
第二段:
update tablename set name='$name' where id='$id' and value is not null;
第二条:
update tablename set name='$name', value='$value' where id='$id' and value is null;

两个分别执行一次就达到效果类。