我有一个要求,如果记录存在,则更新它,否则插入它。我知道这个问题已经被问过几次了,但我认为我的问题有点棘手。
我有一个表(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个设置选项可供用户使用,它们可以在单独的时间(当用户更改设置开/关时)或一起写入数据库(如果更好)。
因此,如果用户更改了vibrate设置,我需要一个查询来检查vibrate和token是否存在更新该特定记录,否则使用token、setting_value和setting_for插入。
希望这可以在一个查询中实现。如果不存在,我将使用多个查询,一个用于检查它是否存在,另一个用于插入或更新。
发布于 2013-02-08 08:46:15
MySQL为此提供了两个选项:
请注意,在这两种情况下,您都必须删除setting_id (这看起来毫无意义),并使用复合主键。
https://stackoverflow.com/questions/14763834
复制相似问题