我有一张大约有17个字段的桌子.我需要经常更新这个表.但问题是each time I may be updating only a few fields.在这种情况下,编写更新查询的最佳方法是什么?我正在寻找一个选项,其中value gets updated only if it is not null.

例如,我在数据库中有四个字段,分别是A、B、C、D. 用户更新比方D的值.所有其他值保持不变.所以我需要一个UPDATE查询,它只更新D的值,保持其他值不变. 因此,如果我将a、b和c设为NULL,而d使用用户提供的值,我想编写一个更新查询,该查询只将d的值更新为a、b和c,而c为NULL. 这是可以实现的吗?

我正在使用SQLite数据库.

谁能给它点光吗?

推荐答案

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

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

EDIT

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

Database相关问答推荐

KUST查询指定时间跨度内里程表&值的差值,并将其滚动到0

DBMS_RANDOM 是否默认安装?

芭蕾舞女演员坚持 1:N 关系

[mongodb],如何通过聚合获得具有许多不同字段的文档的最大值?子字段名称相同

PostgreSQL WHERE IN LIKE 查询

MySQL 慢查询日志(log) - 慢有多慢?

将 .frm 和 .opt 文件导入 MySQL

Mysql - 在所有数据库中查找表

如何识别 DB2 端口号

如何将开发数据库更改移动到生产数据库?

SQL Server 2008如何同步不同服务器中的数据库?

Android - SQLite 数据库存储在哪里?

外键可以作为主键吗?

向表中添加大量索引是否有缺点?

锁定机制(悲观/乐观)如何与数据库事务隔离级别相关?

Redis:数据库大小与内存的比率?

一个 Linq to Sql - 多个 .DBML 文件或一个 .DBML 文件

如何以 SYS 身份在 Java 中连接到 Oracle?

我可以在 /sdcard 上下载 SQLite 数据库并从我的 Android 应用程序访问它吗?

如何在我的数据库中避免 NULL,同时还表示丢失的数据?