Mysql
當另一列發生更改時更新有效列
我們有一
valid_phone
列只儲存 1 或 0 表示有效或無效。當使用者更改他們的電話號碼時,我們希望該欄位返回 0,以便他們必須再次驗證他們的號碼。如果它沒有改變,我們希望尊重那裡的任何值,所以不要總是假設如果它沒有改變,將其設置為 1,因為他們可能還沒有驗證他們的手機,所以在這種情況下它應該保持在 0。
我看到一個使用 a 的查詢,
CASE
並認為它可能對我們有用,但到目前為止我還沒有讓它工作。UPDATE text2bid_users SET valid_phone = CASE WHEN phone NOT '0000' THEN '0' END WHERE user_id = '1234'
我確定我的語法可能是錯誤的,或者我什至可能在錯誤的地方尋找解決方案,因為我是一個剛開始涉足後端和數據庫的前端人員。
我對此的想法是查看是否
phone
已經設置為我將要更新它的手機(這樣就不會被硬編碼),如果不一樣,則設置valid_phone
為 0 然後在此之外name
,address
也將更新。我如何得到一個查詢來做我們需要它在這裡做的事情?
我也可能會更新其他值,所以如果電話相同,我不希望它不更新其他欄位。我想我可以執行兩個查詢,但我覺得我應該能夠在一個查詢中完成。我可能錯了。
UPDATE text2bid_users SET valid_phone = CASE WHEN phone != '0000' THEN 0 else valid_phone END, phone = '0000' WHERE user_id = 1;