回答

收藏

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

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

我有一张桌子,大约有17个字段。我需要在此表中执行频繁的更新。但是问题是 每次我可能只更新几个字段8 V( @% N+ g/ O5 [+ t
。在这种情况下,编写查询以进行更新的最佳方法是什么?我正在寻找一个选项,其中 值仅在不为null时才更新 。
8 |2 k0 i  J. l; _! F( X& _例如,我在数据库Say A,B,C,D中有四个字段。用户更新say
, B/ O  W) f- t. b* ]. t" oD的值。所有其他值保持不变。因此,我需要一个更新查询,该查询仅更新D的值,而其他值保持不变。因此,如果我将a,b和c设置为null,并使用用户提供的值d,则我想编写一个更新查询,该查询仅将d的值更新为a,b和c为null。这是可以实现的吗?4 J' W, Z& m: M5 c( v3 a6 y+ k
我正在使用SQLite数据库。( ?: x0 |; {1 T* L
有人可以给它照亮吗?
' r5 M1 [) X( @- H1 @                , L- j$ X4 |( ?0 }9 f: @0 y9 ^  S
解决方案:
0 [$ e( r. q0 Y, ~. u- w               
" w4 V( ?8 g# ?: Z* ?1 Z5 ?3 ]' p' L" k/ G& C

( o( F. k9 }1 d6 K8 H                在不了解数据库的情况下,很难做到具体。在SQL Server中,语法类似于…
9 W' u% T- u" e* nUPDATE MyTable * r! X  J; Z' I0 M0 W: x. t
SET
# Q' ~: e( W* t: n+ i7 c        Field1 = IsNull(@Field1, Field1),
9 K0 m& ]4 M' g' e        Field2 = IsNull(@Field2, Field2),
$ P8 v; n& F7 E        Field3 = IsNull(@Field3, Field3)
/ Y, C: x& ]& x5 Y: `5 U& `WHERE
( r; i- Q4 m# C4 U     
! ?/ o+ L8 Z  j1 R6 V/ V编辑
% V. F( J+ S( N  O由于您指定了SQLLite …用替换我的IsNull函数,COALESCE() 或交替查看该IfNull函数。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则