我已经搜索了很长时间,但我没有找到我的问题的答案。首先让我解释一下我的问题来自哪里。
我有一个具有用户表单的 Web 应用程序,用户可以在其中指定他/她在一周中的哪几天有空以及这几天的办公时间。将其想象为一个 web 表单,其中包含 mo-su 复选框以及每个复选框/天的从时到时下拉列表。现在,如果将用户配置文件插入到数据库表中,我的表中有类似的内容:
idUser | idDay | fromTime | toTime
1 | 0 | 08:00 | 09:00
(在本例中,0 代表星期一 (0=mo - 6=su))
当然还有更改用户资料的功能。因此,可能首先用户从早上 5 点到下午 3 点有空。现在配置文件已更改,因此用户只能在上午 5 点到下午 3 点使用,而我们只到下午 1 点和上午 9 点到下午 5 点,在这种情况下,我必须更新现有条目,以删除已删除的条目(本例中为周二)并插入新的可用天数。
现在我首先删除用户的所有条目,然后执行新的插入。这很容易,在这种情况下可能是最好的做法(因为每个用户最多有 7 个条目)。但是同样的问题可能会出现在不同的情况下,在这种情况下优化查询可能会更好。
所以最后我的问题是:是否可以执行更新(如果存在),如果不存在则插入并删除仅 ONE 查询中的所有其他条目?
我希望我的问题是可以理解的。