在mysql中,當我們執行一條SQL語句時,如果是修改或刪除操作,除了返回執行結果外,還會返回影響的行數。但有時候我們發現語句執行成功了,但是返回的影響行數卻是0,這是為什么呢?
其實,這種情況很可能是因為記錄的值沒有發生變化。比如,我們執行如下語句:
UPDATE `user` SET `name`='tom' WHERE `id`=1;
如果表中id為1的記錄的name值本來就是'tom',那么執行之后并沒有發生任何變化,因此影響行數就是0。
解決這個問題的方法很簡單,我們只需要在執行SQL語句之前,先查詢一下原始記錄的值,然后判斷是否需要執行更新操作即可。具體代碼如下:
SELECT `name` FROM `user` WHERE `id`=1;
查詢出來的結果是原始記錄的name值,如果發現需要更新則執行UPDATE語句即可,否則直接返回。
通過這種方式,我們就可以避免因為記錄的值沒有變化而產生的誤解了。
上一篇mysql顯示當前端口號
下一篇css中設置邊框線類型