最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sql語句 update字段null不能用is null問題

 更新時間:2022年09月26日 11:51:22   作者:Olivia_Vang  
這篇文章主要介紹了sql語句 update字段null不能用is null問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

sql語句 update字段null不能用is null

update字段為 null 值時,

要用 

set column = null,

而不是

set column is null

UPDATE tableA set 字段a is null WHERE字段b = 條件; 

例:

mysql> UPDATE t SET col3 is null WHERE col1 = 'a';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'is null WHERE col1 = 'a'' at line 1

〇 UPDATE tableA set 字段a = null WHERE字段b = 條件;

例:

mysql> UPDATE t SET col3 =  null WHERE col1 = 'a';
Query OK, 1 row affected (0.03 sec)

update更新數(shù)據(jù)時null字段是否更新進(jìn)數(shù)據(jù)庫總結(jié)

情況一:不需要更新進(jìn)數(shù)據(jù)庫

方法1:直接用sql語句方式,需要更新哪個字段就set xxclounm 即可

方法2:使用mybatis帶的方法 updateById(Entry entry),傳入entry對象只設(shè)置需要更新字段即可。

解析:mybatis-plus在update時對null字段有三種處理策略分別是:

  • IGNORED:0 忽略
  • NOT_NULL:1 非 NULL,默認(rèn)策略
  • NOT_EMPTY:2 非空

默認(rèn)策略是忽略null字段,所以只需要將entry中不需要更新的字段不做處理即可。注意:如果entry中字段設(shè)置為空字符串" " 則會更新進(jìn)數(shù)據(jù)庫

方法3:使用updateWapper,其實和方法2原理一樣 如下例子只更新age字段 ,同樣受更新策略影響:

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","rhb");
User user = new User();
user.setAge(18);
userMapper.update(user, updateWrapper);

情況二:需要更新進(jìn)數(shù)據(jù)庫 (推薦方法3)

方法1:直接用sql語句方式,需要更新哪個字段就set xxclounm 即可

方法2:使用mybatis帶的方法 updateById(Entry entry),傳入entry對象只設(shè)置需要更新字段即可。另外在entry類中需要更新null的字段上加上注解updateStrategy 如下面例子:

? ? /**
? ? ?* 單位
? ? ?*/
? ? @TableField(value = "UNIT", updateStrategy = FieldStrategy.IGNORED)
? ? private String unit;

或者設(shè)置全局更新策略(按需要設(shè)置單個字段或者全局)

# yml配置
mybatis-plus:
? global-config:
? ? db-config:
? ? ? field-strategy: not_empty

方法3:使用updateWapper,不受更新策略影響。推薦此方法,設(shè)置完策略后別人在不知情情況下可能會在不想設(shè)置null時將你設(shè)置的字段更新為空

LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName, "rhb").set(User::getAge, null);
Integer rows = userMapper.update(null, lambdaUpdateWrapper);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

忻城县| 伊金霍洛旗| 茌平县| 黑水县| 噶尔县| 海口市| 大丰市| 新巴尔虎右旗| 娱乐| 南靖县| 临高县| 铜川市| 巨鹿县| 巩义市| 从江县| 南部县| 高雄县| 海阳市| 萍乡市| 大渡口区| 疏勒县| 和平县| 平阴县| 项城市| 乡城县| 东兴市| 大厂| 商南县| 拉萨市| 贡嘎县| 渝中区| 新蔡县| 奈曼旗| 昭通市| 大丰市| 九龙城区| 顺义区| 青州市| 合水县| 潜山县| 油尖旺区|