最新国产好看的视频,伊人天堂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,其實(shí)和方法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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

亚东县| 临海市| 垦利县| 太仆寺旗| 芷江| 鄱阳县| 册亨县| 盘锦市| 鄢陵县| 鄯善县| 清苑县| 涟水县| 揭西县| 双辽市| 方城县| 北流市| 河间市| 临城县| 翁牛特旗| 漠河县| 安达市| 遂昌县| 娄烦县| 阿巴嘎旗| 武乡县| 竹北市| 江川县| 西乌| 哈密市| 稻城县| 竹山县| 淮安市| 沁源县| 开远市| 黄浦区| 霍城县| 焦作市| 苗栗县| 聊城市| 临邑县| 宜兰县|