MySQL UPDATE 語句一個(gè)“經(jīng)典”的坑
有人問,比如下圖:
問題歸納起來就是:在MySQL
里面update
一條記錄,語法都正確的,但記錄并沒有被更新...
剛遇到這個(gè)問題的時(shí)候,我拿到這條語句直接在測(cè)試庫(kù)里面執(zhí)行了一把,發(fā)現(xiàn)確實(shí)有問題,但和開發(fā)描述的還是 有區(qū)別 ,這里我用測(cè)試數(shù)據(jù)來模擬下:
1、有問題的SQL語句
執(zhí)行之后的記錄是:
可以看到,結(jié)果并不像這位開發(fā)同學(xué)說的“好像沒有效果”,實(shí)際上是有效果的:
why?
看起來,語法是完全沒有問題,翻了翻MySQL官方文檔的update語法:
看到assignment_list
的格式是以逗號(hào)分隔的col_name=value
列表,一下子豁然開朗,開發(fā)同學(xué)想要的多字段更新語句應(yīng)該這樣寫:
倒回去再重試驗(yàn)一把
果然,這下得到了想要的結(jié)果!
小結(jié) : 在一條UPDATE
語句中,如果要更新多個(gè)字段,字段間不能使用“AND”,而應(yīng)該用逗號(hào)分隔。
后記 :后面等有空的時(shí)候,又回過頭來看了一下,為什么使用“AND”分隔的時(shí)候,會(huì)出現(xiàn)owner_code=0
的奇怪結(jié)果?多次嘗試之后發(fā)現(xiàn):
等價(jià)于:
而 ('43212' and owner_name='李四'
) 是一個(gè)邏輯表達(dá)式,而這里不難知道owner_name
并不是‘李四'。因此,這個(gè)邏輯表達(dá)式的結(jié)果為 false , false在MySQL
中等價(jià)于0!
到此這篇關(guān)于MySQL UPDATE
語句一個(gè)“經(jīng)典”的坑的文章就介紹到這了,更多相關(guān)MySQL UPDATE
內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL架構(gòu)體系知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里我們給大家整理了關(guān)于MySQL架構(gòu)體系的相關(guān)知識(shí)點(diǎn)內(nèi)容以及相關(guān)實(shí)例,需要的朋友們學(xué)習(xí)下。2019-02-02一文總結(jié)使用MySQL時(shí)遇到null值的坑
這篇文章給大家總結(jié)了日常使用MySQL時(shí),容易遇到NULL值的坑有哪些,文章通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01Mysql數(shù)據(jù)庫(kù)的導(dǎo)入導(dǎo)出方式(各種情況)
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)的導(dǎo)入導(dǎo)出方式(各種情況),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03MySQL復(fù)合查詢操作實(shí)戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于MySQL復(fù)合查詢操作的相關(guān)資料,MySQL復(fù)合查詢是指在一個(gè)SQL語句中使用多個(gè)查詢條件,以過濾和檢索數(shù)據(jù),需要的朋友可以參考下2023-08-08用C語言操作MySQL數(shù)據(jù)庫(kù)的通用方法
在為MySQL提供接口方面,C語言具有更好的安全性和性能,本篇文章介紹了C語言操作MySQL數(shù)據(jù)庫(kù)的通用方法,需要了解的朋友可以參考下2015-07-07利用SQL注入漏洞登錄后臺(tái)的實(shí)現(xiàn)方法
工作需要,得好好補(bǔ)習(xí)下關(guān)于WEB安全方面的相關(guān)知識(shí),故撰此文,權(quán)當(dāng)總結(jié),別無它意。讀這篇文章,我假設(shè)讀者有過寫SQL語句的經(jīng)歷,或者能看得懂SQL語句2012-01-01MySQL數(shù)據(jù)庫(kù)性能優(yōu)化介紹
大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫(kù)性能優(yōu)化介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12MySQL學(xué)習(xí)筆記1:安裝和登錄(多種方法)
今天開始學(xué)習(xí)數(shù)據(jù)庫(kù),于數(shù)據(jù)庫(kù)的大理論我就懶得寫了,些考試必備的內(nèi)容我已經(jīng)受夠了我只需要知道一點(diǎn),人們整理數(shù)據(jù)和文件的行為在不斷進(jìn)化,以至現(xiàn)在使用數(shù)據(jù)庫(kù)來更好的管理2013-01-01MySQL中Innodb的事務(wù)隔離級(jí)別和鎖的關(guān)系的講解教程
這篇文章主要介紹了MySQL中Innodb的事務(wù)隔離級(jí)別和鎖的關(guān)系講解教程,來自于美團(tuán)技術(shù)團(tuán)隊(duì)的經(jīng)驗(yàn)實(shí)際經(jīng)驗(yàn)分享,需要的朋友可以參考下2015-11-11