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