SQL UPDATE,但仅当旧值为空时

标签 sql null sql-update

我一直在使用这样的 sql 来更新我的数据库中的属性列表:

update my_table set a = ?, b = ?, c = ?, d = ?,  where customer = ?

但是我只想用新值更新一个属性,如果它在数据库中已经没有值。我怎样才能做到这一点?

最佳答案

在 MS SQL 中,这样的事情(假设非值意味着数据库 NULL)应该可以工作:

update 
  my_table 
set 
  a = COALESCE(a, ?), 
  b = COALESCE(b, ?), 
  c = COALESCE(c, ?), 
  d = COALESCE(d, ?)
where 
  customer = ?
COALESCE()从其参数返回第一个非空值。

关于SQL UPDATE,但仅当旧值为空时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4806171/

相关文章:

mysql - 数据库挑战: How to Update 1 million records efficiently?

MySQL UPDATE 和 SELECT 一次完成

sql - 在更新中使用 replace() 函数来更改一列的多个子字符串

android - 无法将计数值设置为列

c++ - 无法将 nullptr 返回到我的类 C++

C++ - 检查指针是否指向有效内存(此处不能使用 NULL 检查)

php - 如何更新特定列而不重复并替换值

sql - 如何获取 SQL 插入生成的自动编号

SQL SELECT WHERE 字段包含单词

定义 NULL 和 NULL_POINTER 的正确方法?