回答

收藏

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

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

我有一张桌子,大约有17个字段。我需要在此表中执行频繁的更新。但是问题是 每次我可能只更新几个字段
4 H9 P  n/ d1 G- X0 K。在这种情况下,编写查询以进行更新的最佳方法是什么?我正在寻找一个选项,其中 值仅在不为null时才更新 。' L4 M* k3 l- S( U- d/ O
例如,我在数据库Say A,B,C,D中有四个字段。用户更新say
% i2 X" L+ k+ u& K9 S0 A0 nD的值。所有其他值保持不变。因此,我需要一个更新查询,该查询仅更新D的值,而其他值保持不变。因此,如果我将a,b和c设置为null,并使用用户提供的值d,则我想编写一个更新查询,该查询仅将d的值更新为a,b和c为null。这是可以实现的吗?
: C' T. ^3 J- q我正在使用SQLite数据库。. _" W, c; }* b+ Y3 k
有人可以给它照亮吗?8 D, L% X2 ^9 R; ^! `
               
+ ~) s' e) @% }' H2 Z4 I; G* c- ]% x解决方案:  I5 I) w6 {$ ]* }7 ~
               
7 N9 |/ P$ }' |3 o7 |1 e0 G/ Z& G4 v7 H  F. ^
; o0 u( n: g- Z
                在不了解数据库的情况下,很难做到具体。在SQL Server中,语法类似于…# {0 U. g  w1 C
UPDATE MyTable
& w" K; n1 r' z3 j. y0 LSET + E" W* }3 P# x: [
        Field1 = IsNull(@Field1, Field1),& V1 h7 e4 F* b2 Z" v
        Field2 = IsNull(@Field2, Field2),7 P! U! m; Z( R
        Field3 = IsNull(@Field3, Field3)
1 a* t! D5 l- H7 L/ JWHERE ( h/ V3 F) ]3 J) D' _/ \" H
     
" |: \; Z: q" |* C0 ~3 F编辑
$ r: q4 ^5 _/ l7 v( ]由于您指定了SQLLite …用替换我的IsNull函数,COALESCE() 或交替查看该IfNull函数。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则