亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

update字段為 null 值時(shí),

要用 

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ù)時(shí)null字段是否更新進(jìn)數(shù)據(jù)庫總結(jié)

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

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

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

解析:mybatis-plus在update時(shí)對(duì)null字段有三種處理策略分別是:

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

默認(rèn)策略是忽略null字段,所以只需要將entry中不需要更新的字段不做處理即可。注意:如果entry中字段設(shè)置為空字符串" " 則會(huì)更新進(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語句方式,需要更新哪個(gè)字段就set xxclounm 即可

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

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

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

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

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

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

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

相關(guān)文章

  • Mysql中索引和約束的示例語句

    Mysql中索引和約束的示例語句

    這篇文章主要介紹了Mysql中索引和約束的相關(guān)資料,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • MySql如何查看索引并實(shí)現(xiàn)優(yōu)化

    MySql如何查看索引并實(shí)現(xiàn)優(yōu)化

    這篇文章主要介紹了MySql如何查看索引并實(shí)現(xiàn)優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • mysql百萬數(shù)據(jù)表加索引優(yōu)化的方法

    mysql百萬數(shù)據(jù)表加索引優(yōu)化的方法

    在大數(shù)據(jù)時(shí)代,隨著數(shù)據(jù)量的快速增長,對(duì)數(shù)據(jù)庫的索引優(yōu)化變得尤為重要,本文主要介紹了mysql百萬數(shù)據(jù)表加索引優(yōu)化的方法,感興趣的可以了解一下
    2024-02-02
  • 淺談MySQL中四種常用存儲(chǔ)引擎

    淺談MySQL中四種常用存儲(chǔ)引擎

    這篇文章主要介紹了MySQL中四種常用存儲(chǔ)引擎,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • MySQL進(jìn)階SELECT語法篇

    MySQL進(jìn)階SELECT語法篇

    從這個(gè)基本語法可以看出,最簡單的SELECT語句是SELECT select_list,實(shí)際上利用這個(gè)最簡單的SELECT語句,你也可以完成許多你期待的功能,首先你能利用它進(jìn)行MySQL所支持的任何運(yùn)算,例如:SELECT 1+1,它將返回2;其次,你也能利用它給變量賦值,而在PHP中,運(yùn)用SELECT語句的這種功能,你就可以自由地運(yùn)用MySQL的函數(shù)為PHP程序進(jìn)行各種運(yùn)算,并賦值給變量。在很多的時(shí)候,你會(huì)發(fā)現(xiàn)MySQL擁有許多比PHP更為功能強(qiáng)大的函數(shù)。
    2008-04-04
  • 開啟MySQL遠(yuǎn)程連接的方法

    開啟MySQL遠(yuǎn)程連接的方法

    這篇文章主要介紹了開啟MySQL遠(yuǎn)程連接的方法,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫的使用,感興趣的朋友可以了解下
    2020-12-12
  • MySQL復(fù)制的概述、安裝、故障、技巧、工具(火丁分享)

    MySQL復(fù)制的概述、安裝、故障、技巧、工具(火丁分享)

    首先主服務(wù)器把數(shù)據(jù)變化記錄到主日志,然后從服務(wù)器通過I/O線程讀取主服務(wù)器上的主日志,并且把它寫入到從服務(wù)器的中繼日志中,接著SQL線程讀取中繼日志,并且在從服務(wù)器上重放,從而實(shí)現(xiàn)MySQL復(fù)制。
    2011-04-04
  • homeassistant數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫方式

    homeassistant數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫方式

    這篇文章主要介紹了homeassistant數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MySQL服務(wù)器線程數(shù)的查看方法詳解

    MySQL服務(wù)器線程數(shù)的查看方法詳解

    這篇文章主要介紹了MySQL服務(wù)器線程數(shù)的查看方法,結(jié)合實(shí)例形式分析了mysql線程數(shù)查看的相關(guān)命令、配置、參數(shù)及相關(guān)使用技巧,需要的朋友可以參考下
    2018-03-03
  • mysql數(shù)據(jù)庫自動(dòng)添加創(chuàng)建時(shí)間及更新時(shí)間

    mysql數(shù)據(jù)庫自動(dòng)添加創(chuàng)建時(shí)間及更新時(shí)間

    在實(shí)際應(yīng)用中我們時(shí)常會(huì)需要用到創(chuàng)建時(shí)間和更新時(shí)間這兩個(gè)字段,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫自動(dòng)添加創(chuàng)建時(shí)間及更新時(shí)間的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評(píng)論