在MySQL中的表中mytable
我想要UPDATE列max_value
查询表之前的示例如下:
___________________________________________________
|| id || value1 || value2 || value3 || max_value ||
___________________________________________________
|| 1 || 1 || 2 || 3 || NULL ||
===================================================
|| 2 || 99 || 2 || 3 || NULL ||
===================================================
|| 3 || 1 || 66 || 66 || NULL ||
===================================================
|| 4 || 1 || 2 || NULL || NULL ||
===================================================
|| 5 || NULL || NULL || NULL || NULL ||
___________________________________________________
Run Code Online (Sandbox Code Playgroud)
亚特的SQL语句max_value
应该已经更新了最高值value1
,value2
或value3
.像这样:
___________________________________________________
|| id || value1 || value2 || value3 || max_value ||
___________________________________________________
|| 1 || 1 || 2 || 3 || 3 ||
===================================================
|| 2 || 99 || 2 || 3 || 99 ||
===================================================
|| 3 || 1 || 66 || 66 || 66 ||
===================================================
|| 4 || 1 || 2 || NULL || 2 ||
===================================================
|| 5 || NULL || NULL || NULL || NULL ||
___________________________________________________
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个MySQL查询吗?
您必须NULL
用0
您喜欢的值或任何值替换值,否则与"未知值"的比较总是返回"未知值".
update table1
set max_value = greatest(coalesce(value1, 0), coalesce(value2, 0), coalesce(value3, 0));
Run Code Online (Sandbox Code Playgroud)
该coalesce()
函数返回其第一个参数not null