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

MySQL實(shí)現(xiàn)數(shù)據(jù)更新的示例詳解

 更新時(shí)間:2023年02月08日 14:31:08   作者:酸菜魚(yú)土豆大俠  
這篇文章主要為大家詳細(xì)介紹了MySQL實(shí)現(xiàn)數(shù)據(jù)更新的相關(guān)資料,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一般在更新時(shí)會(huì)遇到以下場(chǎng)景:

1.所有字段全部更新;

2.根據(jù)條件更新字段中的某部分內(nèi)容;

3.根據(jù)不同的條件更新不同的值

以下是幾種場(chǎng)景中常用的update方法。

一、方法分類(lèi)

二、具體用法

(1)根據(jù)條件更新值

根據(jù)指定條件更新(多列)(全部更新)

把表中 [符合條件的行的] 列名1字段中的值全部修改為值1 [,列名2字段中的值修改為值2]。

update 表名 
set 列名1 = 值1 [,列名2=值2]
[where 條件];

替換指定值(多列)(部分更新)

把表中 [符合條件的行的] 列名1字段中的查找內(nèi)容全部修改為替換內(nèi)容 [,列名2字段中的查找內(nèi)容全部修改為替換內(nèi)容]。

update 表名 
set 列名1 = replace(列名1, '查找內(nèi)容', '替換內(nèi)容') [,列名2 = replace(列名2, '查找內(nèi)容', '替換內(nèi)容')] 
[where 條件];

(2)按照不同條件(批量)更新不同值

使用 if

把表中 [符合條件的行的] 列名1字段中符合條件1的內(nèi)容修改為值1,否則修改為值2 [,列名2字段中符合條件2的內(nèi)容修改為值3,否則修改為值4]。

update table 
set 
	列名1 = if(條件1,值1,值2),
    列名2 = if(條件2,值3,值4)
[where 條件];

使用 case when

把表中 [符合條件的行的] 列名1字段中符合條件1的內(nèi)容修改為值1 [,符合條件2的修改為值2,...] [,列名2字段中符合條件21的內(nèi)容修改為值21,符合條件22的修改為值22,...] 。

update table 
set 列名1 =
    case
        when 條件1 then 值1
        when 條件2 then 值2
        when 條件3 then 值3
        ...
    end,
    列名2 =
    case
        when 條件21 then 值21
        when 條件22 then 值22
        when 條件23 then 值23
        ...
    end
[where 條件];

三、實(shí)例

students 表 (id表示主鍵,name是姓名,score是平均成績(jī))

idnamescore
1李明99
2張三74
3孫華59

(1)根據(jù)條件更新值

把 students 表中 name 為張三的 score 字段的值全部修改為100。

#使用where
update students 
set score = 100
where name = '張三';
idnamescore
1李明99
2張三100
3孫華59

把 students 表中 id 大于等于2的所有行中 score 中59的部分全部修改為0,name 中三的部分全部修改為四。

#使用replace
update students 
set score = replace(score,59,0),
	name = replace(name,'三','四')
where id >= 2;

注意:張三替換之后是張四,并不是只有字段等于三時(shí)才能替換。

idnamescore
1李明99
2張四74
3孫華0

(2)按照不同條件更新不同值

請(qǐng)把students表中score小于60的score字段全部改為0,否則改為100,name字段中的名字改為不及格,否則改為及格。

#批量更新多值 + if
update students 
set 
    score = if(score < 60,0,100),
    name = if(score < 60,'不及格','及格');
idnamescore
1及格100
2及格100
3不及格0

注意:更新的值要滿足建表時(shí)的字段類(lèi)型。比如score是int類(lèi)型就不能更新為char類(lèi)型。

請(qǐng)把students表中score小于60的score字段全部改為0,name字段中的名字改為不及格;score大于等于90的score字段全部改為2,name字段中的名字改為優(yōu)秀;score大于等于60小于90的score字段全部改為1,name字段中的名字改為良好。

#批量更新多值 + case when
update students 
set 
    name = case
        when score < 60 then '不及格'
		when score >= 90 then '優(yōu)秀'
        else '良好'
    end,
		score = case
        when score < 60 then 0
		when score >= 90 then 2
        else 1
    end;

注意:更新的時(shí)候是按照代碼語(yǔ)句的先后順序更新的??梢試L試先更新score后更新name,結(jié)果是不一樣的。

idnamescore
1優(yōu)秀2
2良好1
3不及格0

到此這篇關(guān)于MySQL實(shí)現(xiàn)數(shù)據(jù)更新的示例詳解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)更新內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL Packet for query is too large 問(wèn)題及解決方法

    MySQL Packet for query is too large 問(wèn)題及解決方法

    這篇文章主要介紹了MySQL Packet for query is too large 問(wèn)題及解決方法,需要的朋友可以參考下
    2018-05-05
  • Table ‘xxx’ is marked as crashed and should be repaired 錯(cuò)誤解決方法參考

    Table ‘xxx’ is marked as crashed and should be repaired 錯(cuò)誤解決

    這些東西都是從其他地方找來(lái)的一些解決MYSQL數(shù)據(jù)庫(kù)這個(gè)錯(cuò)誤的方法,并不一定適用于神跡數(shù)據(jù)庫(kù),僅僅供參考一下,具體的解決方法還是需要摸索。
    2009-04-04
  • 關(guān)于MySQL8.x group_by報(bào)錯(cuò)的4種解決方案

    關(guān)于MySQL8.x group_by報(bào)錯(cuò)的4種解決方案

    這篇文章主要介紹了關(guān)于MySQL8.x group_by報(bào)錯(cuò)的4種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 如何修改Mysql中g(shù)roup_concat的長(zhǎng)度限制

    如何修改Mysql中g(shù)roup_concat的長(zhǎng)度限制

    在mysql中,有個(gè)函數(shù)叫“group_concat”,平常使用可能發(fā)現(xiàn)不了問(wèn)題,在處理大數(shù)據(jù)的時(shí)候,會(huì)發(fā)現(xiàn)內(nèi)容被截取了。怎么解決這一問(wèn)題呢,下面腳本之家小編給大家?guī)?lái)了Mysql中g(shù)roup_concat的長(zhǎng)度限制問(wèn)題,感興趣的朋友一起看看吧
    2018-08-08
  • MySQL出現(xiàn)錯(cuò)誤代碼:1055的三種解決方案(推薦!)

    MySQL出現(xiàn)錯(cuò)誤代碼:1055的三種解決方案(推薦!)

    當(dāng)我們?cè)诓樵儠r(shí)使用group by語(yǔ)句,出現(xiàn)錯(cuò)誤代碼:1055;執(zhí)行發(fā)生錯(cuò)誤語(yǔ)句,本文給大家介紹了MySQL出現(xiàn)錯(cuò)誤代碼:1055的三種解決方案,文中有詳細(xì)的代碼示例和圖文供大家參考,需要的朋友可以參考下
    2024-05-05
  • MySQL過(guò)濾重復(fù)數(shù)據(jù)的兩種方法示例

    MySQL過(guò)濾重復(fù)數(shù)據(jù)的兩種方法示例

    數(shù)據(jù)庫(kù)生成環(huán)境中經(jīng)常會(huì)遇到表中有重復(fù)的數(shù)據(jù),或者進(jìn)行關(guān)聯(lián)過(guò)程中產(chǎn)生重復(fù)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL過(guò)濾重復(fù)數(shù)據(jù)的兩種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法

    mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • mysql復(fù)制表的幾種常用方式

    mysql復(fù)制表的幾種常用方式

    這篇文章主要給大家介紹了關(guān)于MySQL中復(fù)制表的幾種常用方式,我們?cè)趯?duì)一張表進(jìn)行操作,但是怕誤刪數(shù)據(jù),所以在同一個(gè)數(shù)據(jù)庫(kù)中建一個(gè)表結(jié)構(gòu)一樣,表數(shù)據(jù)也一樣的表,以作備份,需要的朋友可以參考下
    2023-08-08
  • 數(shù)據(jù)庫(kù)連接池以及sequelize實(shí)現(xiàn)增刪改查等操作指南

    數(shù)據(jù)庫(kù)連接池以及sequelize實(shí)現(xiàn)增刪改查等操作指南

    Sequelize的連接需要傳入?yún)?shù),并且可以配置開(kāi)啟線程池、讀寫(xiě)分庫(kù)等操作,下面這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)連接池以及sequelize實(shí)現(xiàn)增刪改查等操作的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 史上最簡(jiǎn)單的MySQL數(shù)據(jù)備份與還原教程(下)(三十七)

    史上最簡(jiǎn)單的MySQL數(shù)據(jù)備份與還原教程(下)(三十七)

    這篇文章主要為大家詳細(xì)介紹了史上最簡(jiǎn)單的MySQL數(shù)據(jù)備份與還原教程下篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論