gpt4 book ai didi

php - 考虑到两列,如何防止重复值插入mySQL?

转载 作者:行者123 更新时间:2023-11-29 00:52:26 25 4
gpt4 key购买 nike

这是我的表格:

表名:用户链接

Link_ID   User_1   User_2
1 234325 100982
2 116727 299011
3 399082 197983
4 664323 272351

基本上,在此表中的重复值是:

Link_ID   User_1    User_2
1 232 109
2 109 232

我环顾四周,发现我应该使用 INSERT IGNORE 来防止重复条目,但我不确定如何编写一个查询来考虑 User_1 和 User_2 之间的关系与 User_2 和 User_1 之间的关系相同。

非常感谢任何建议/帮助。

最佳答案

这有点令人讨厌,这两个字段之间存在交换关系,但唯一索引无济于事,因为值可以任意变化。

如果您可以更改代码/数据以确保始终将 id 的较低值放在 user_1 字段中,那至少会让唯一索引起作用 - 但它有点讨厌。

或者,如果插入是基于设置的(例如,不是一次一行,而是一组行),您可以连接到现有数据并基于两种方式进行反连接,例如:

(existing.user_1 = new.user_1 and existing.user_2 = new user_2)
OR (existing.user_1 = new.user_2 and existing.user_2 = new user_1)

并在 where 子句中检查以确保没有匹配(连接的反部分)

where existing.link_id is null

虽然这对于一次插入行来说效率不高。

关于php - 考虑到两列,如何防止重复值插入mySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com