我知道有一种方法可以使用唯一 key (例如 ID)来实现此结果,但正如您在下面看到的,在我的情况下,这不起作用,因为我没有唯一 key 。
INSERT INTO User_Status (User_ID1, User_ID2, Status) VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE Status = ?
问题是我在这个表格上没有唯一的 ID,但是当前有 3 个选项。 1) 两个用户不具有同一种状态,换句话说:将其插入到表中。 2) 用户 1 与用户 2 具有一个状态(但是 1-2 组合是唯一的)。 3) 与情况 2 相同,但相反:用户 2 与用户 1 具有一个状态(同样,此组合是唯一的)。
如果此选项已经存在,是否还要更新?
示例数据:
User_ID1 User_ID2 Status
1 4 has_send_request
4 1 has_received_request
4 2 friends
2 4 friends
假设我想将用户 1-4 的状态从 has_send_request 更新到 friend 。在这种情况下,我可以执行正常的 UPDATE 查询。但是,如果我想更新用户 2-4 的状态,我需要进行一个 INSERT 查询,而不是一个 UPDATE 查询。
最佳答案
关于mysql - 插入 MySQL 表或更新(如果存在但没有唯一键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306495/