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

标签 sql database sqlite sql-update

我有一个包含大约 17 个字段的表。我需要在此表中执行频繁更新。但问题是每次我可能只更新几个字段。在这种情况下编写更新查询的最佳方法是什么?我正在寻找一个选项,其中值只有在不为 null 时才会更新

例如,我在数据库中有四个字段 Say A、B、C、D。 用户更新 say D 的值。所有其他值保持不变。所以我想要一个更新查询,它只更新 D 的值,保持其他值不变。 因此,如果我将 a、b 和 c 设置为 null,并将 d 设置为用户提供的值,我想编写一个更新查询,它只将 d 的值更新为 a、b 和 c 为 null。 这是可以实现的吗?

我正在使用 SQLite 数据库。

有人可以给它点亮吗?

最佳答案

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

UPDATE MyTable 
SET 
        Field1 = IsNull(@Field1, Field1),
        Field2 = IsNull(@Field2, Field2),
        Field3 = IsNull(@Field3, Field3)
WHERE 
     <your criteria here>

编辑

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

关于如果值不为空,则更新数据库的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099570/

相关文章:

MySQL 创建带有年龄计数功能的表 check()

数据库免费 NUnit 测试

database - 在 SQLite 中读取固定宽度的列是否更快?

Python\SQLite : table A has no column named X

c++ - sqlite c++ 体系结构 x86_64 的 undefined symbol

sql - 使用第二个表中的选定行从两个表 Access 报告

Mysql Union 返回重复项

mysql - 如何对 5 个表执行 JOIN 并获取我需要的数据?

sql - 文件的目录查找失败,出现操作系统错误 3(系统找不到指定的路径。)

Perl SQLite DBI SELECT 绑定(bind)不起作用