如果值不为null,则更新数据库的SQL查询?

Zac*_*ach 32 sql database sqlite sql-update

我有一张桌子,里面有大约17个田地.我需要在此表中执行频繁更新.但问题是每次我只更新几个字段.什么是在这种情况下编写查询以进行更新的最佳方法?我正在寻找一个选项,只有当它不为null时才会更新值.

例如,我在数据库Say A,B,C,D中有四个字段.用户更新说D的值.所有其他值保持不变.所以我想要一个更新查询,它只更新D的值,保持其他人不变.所以如果我把a,b和c作为null并且d与用户提供的值我想写一个更新查询,它只更新d的值为a,b和c为null.这是可以实现的吗?

我正在使用SQLite数据库.

有人可以请一些光吗?

EBa*_*arr 58

在不了解您的数据库的情况下,很难具体.在SQL Server中,语法类似于......

UPDATE MyTable 
SET 
        Field1 = IsNull(@Field1, Field1),
        Field2 = IsNull(@Field2, Field2),
        Field3 = IsNull(@Field3, Field3)
WHERE 
     <your criteria here>
Run Code Online (Sandbox Code Playgroud)

编辑

由于您指定了SQLLite ...替换我的IsNull函数COALESCE() 或者交替查看IfNull函数.

  • 请记住,这意味着一旦设置了列,就不能使用此存储过程将列设置回NULL. (10认同)