0
我有一組按鈕,一次只能選擇其中一個,並且可以將其切換爲關閉狀態,這意味着如果用戶選擇了所選按鈕它應該被取消選擇。
可以說我的表格有buttons_id
,user_id
和value
列,buttons_id
和user_id
是主鍵(連接在一起)。
所以我想Mysql INSERT ...如果值不一致,則重複鍵更新其他刪除
- 插入選定
value
表如果buttons_id
,如果存在buttons_id
,user_id
組合user_id
組合不存在(insert into
) - 更新記錄和價值是不同的(
on duplicate key update
) - 刪除記錄,如果
buttons_id
,user_id
組合存在和價值是相同的(delete ?
)
我該怎麼做這是一個單一的查詢?我可以在on duplicate key update
內使用case
嗎?
我不明白的方式,你可以[INSERT/UPDATE] [刪除]在一個單一的聲明。請注意,該動作是您在聲明中首先編寫的內容。 – FDavidov
按鈕狀態是最好在您的應用程序中的變量(或按鈕組件本身)中處理的。否則,您必須在更新後再次查詢數據庫,以查看哪個按鈕現在處於活動狀態(儘管您只是在應用程序中將其按下)。如果只有一個按鈕可以激活,就我所知,您的方法無效,因爲按下特定的按鈕不會取消其他按鈕。所以只需要按user_id(主鍵)更新一行,最後一個按鈕是'button_id',並且它的(已知)狀態是'value'(或者如果你真的想用db來切換case)。 – Solarflare