有人在羣裏問這個問題數據庫
update xt_kh set zhye=zhye+1,hzyj=hzyj+1 where dlgh='kiss0451' and hzms=1
若是這樣寫 hzms不等於1的時候 zhye字段也不更新了,
我想要的是 zhye 必須更新,而hzyj是選擇性的,怎麼用update來實現啊?spa
他提出根據hzms進行部分更新,那麼主條件是dlgh='kiss0451' 是必須肯定的,如此以來,這個 hzms 就不能做爲條件子句了,有人提出用兩條語句實現,不過他說必須用一條,嗯哼,看來是有點麻煩的。code
根據條件進行判斷,那麼我就天然而然的想到能夠用if表達式進行實現blog
效果以下class
SQL以下:date
update xt_kh set zhye=zhye+1,hzyj=if(hzms=1,hzyj+1,hzyj) where dlgh='kiss0451'
這裏面的問題就在於,要先將 zhye的條件肯定好,這個是必然要更新,而後 hzyj要部分更新,那麼關鍵就在於根據hzms進行判斷 若是等於1 則更新加1 不然仍是自身,這是問題的核心,其實更新爲自身也是更新,只不過影響行數沒變而已,對於用戶而言好像是沒更新,其實對於數據庫而言,是更新了。而對於SQL而言也是一條SQL就實現了需求了。im