我需要更新记录(如果存在),否则插入它。我知道这已被问过几次,但我认为我的问题有点棘手。
我有一张桌子(tbl_settings):
setting_id | token | setting_value | setting_for
1 1 on background
2 1 off vibrate
3 2 on vibrate
等
这适用于移动应用,我会将用户设置保存在远程数据库中,以便以后可以根据需要进行检索。
Setting_id是唯一且自动增量。
令牌将成为设备令牌ID(特定于用户)
Setting_value是该特定设置的值(开/关)
Setting_for是实际设置的名称
现在有4个可供用户使用的设置选项,可以在个别时间(当用户更改设置打开/关闭时)写入数据库,或者如果更好的话,可以一起写入数据库。
因此,如果用户更改振动设置,我需要一个查询来检查振动和令牌是否存在更新特定记录,否则插入令牌,setting_value和setting_for。
希望它可以在单个查询中使用。如果不是,我将只使用多个查询,一个用于检查是否存在,另一个用于插入或更新。
答案 0 :(得分:0)
MySQL为此提供了两个选项:
请注意,在这两种情况下,您都必须删除setting_id
(无论如何这似乎毫无意义)并使用复合主键。