回答

收藏

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

技术问答 技术问答 242 人阅读 | 0 人回复 | 2023-09-14

我有一张桌子,大约有17个字段。我需要在此表中执行频繁的更新。但是问题是 每次我可能只更新几个字段0 j( R5 Y! ?3 x. a* [$ V) }
。在这种情况下,编写查询以进行更新的最佳方法是什么?我正在寻找一个选项,其中 值仅在不为null时才更新 。$ V8 |( ^$ U: V8 Q
例如,我在数据库Say A,B,C,D中有四个字段。用户更新say( i  z+ d; S! [2 Y5 Q  H( `
D的值。所有其他值保持不变。因此,我需要一个更新查询,该查询仅更新D的值,而其他值保持不变。因此,如果我将a,b和c设置为null,并使用用户提供的值d,则我想编写一个更新查询,该查询仅将d的值更新为a,b和c为null。这是可以实现的吗?
0 z9 L- }% ~1 ]) Y我正在使用SQLite数据库。
+ q2 F, V9 f5 ^2 j& d& Z+ Q有人可以给它照亮吗?2 |9 g1 Y, W' J8 D
                2 o7 e5 D% ?0 L$ m; _
解决方案:
2 }8 E/ E! y% T! L1 a. R% G; D0 C               
1 y; D8 D: {0 H
$ |% L( W8 W# a# e# }  v2 T
9 ^+ @8 W' N. d3 Y- A8 `* s4 [& h                在不了解数据库的情况下,很难做到具体。在SQL Server中,语法类似于…
$ u! f  _3 S& fUPDATE MyTable 3 n5 I$ J) K6 I  M
SET * O% S1 w9 F# q7 f' U  R; k
        Field1 = IsNull(@Field1, Field1),! V2 d& V/ u8 ~
        Field2 = IsNull(@Field2, Field2),
; H6 |. O( {" D9 Q        Field3 = IsNull(@Field3, Field3)/ |, v8 j3 v9 @( O+ r
WHERE
/ H6 O# H; z8 i     
+ W8 U" n4 _% y- J- h9 a0 [9 p编辑/ \$ ]. k+ j- {" I1 e4 n
由于您指定了SQLLite …用替换我的IsNull函数,COALESCE() 或交替查看该IfNull函数。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则