您好,登錄后才能下訂單哦!
本篇內容介紹了“如何理解MySQL UPDATE語句”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、有問題的SQL語句
有人問,比如下圖:
問題歸納起來就是:在MySQL
里面update
一條記錄,語法都正確的,但記錄并沒有被更新...
剛遇到這個問題的時候,我拿到這條語句直接在測試庫里面執行了一把,發現確實有問題,但和開發描述的還是 有區別 ,這里我用測試數據來模擬下:
執行之后的記錄是:
可以看到,結果并不像這位開發同學說的“好像沒有效果”,實際上是有效果的:
why?
看起來,語法是完全沒有問題,翻了翻MySQL官方文檔的update語法:
看到assignment_list
的格式是以逗號分隔的col_name=value
列表,一下子豁然開朗,開發同學想要的多字段更新語句應該這樣寫:
倒回去再重試驗一把
果然,這下得到了想要的結果!
小結 : 在一條UPDATE
語句中,如果要更新多個字段,字段間不能使用“AND”,而應該用逗號分隔。
后記 :后面等有空的時候,又回過頭來看了一下,為什么使用“AND”分隔的時候,會出現owner_code=0
的奇怪結果?多次嘗試之后發現:
等價于:
而 ('43212' and owner_name='李四'
) 是一個邏輯表達式,而這里不難知道owner_name
并不是‘李四'。因此,這個邏輯表達式的結果為 false , false在MySQL
中等價于0!
“如何理解MySQL UPDATE語句”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。