Php 任意顺序的唯一密钥

Php 任意顺序的唯一密钥,php,mysql,unique-key,Php,Mysql,Unique Key,我正在为一个表使用MYSQL的唯一键。但是,我有一个表,其中有“user1,user2”。我创建了一个唯一键,但问题是我希望唯一键在“user1==user1&&user2==user2”或“user1==user2&&user2==user1”中起作用 或 如何在mySQL中实现该唯一密钥 谢谢 只有在同时强制执行另一条规则时才能执行此操作: user1 < user2 user1user2;只要您是自洽的,这并不重要。) 否则,正如评论中所指出的,排列'(b,a)'不同于'(a,b)

我正在为一个表使用MYSQL的唯一键。但是,我有一个表,其中有“user1,user2”。我创建了一个唯一键,但问题是我希望唯一键在“user1==user1&&user2==user2”或“user1==user2&&user2==user1”中起作用

如何在mySQL中实现该唯一密钥


谢谢

只有在同时强制执行另一条规则时才能执行此操作:

user1 < user2
user1
然后您就知道惟一约束将满足您的需求。(或者,反过来说,
user1>user2
;只要您是自洽的,这并不重要。)


否则,正如评论中所指出的,排列'(b,a)'不同于'(a,b)',并且唯一约束不会强制实现您想要的唯一性。

似乎您将一个简单的问题过度复杂化了。为什么要这样做?不要认为使用标准SQL功能就可以这样做<就SQL而言,code>(a,b)
(b,a)
完全不同,不会被视为重复。您可以使用update/insert的“on-before”触发器来伪造它,以捕获此类双向键。简单的解决方案是:插入时,始终重新排序,以便user1(1,3)
(3,1)
,我只是不想在我的PHP中进行选择,然后在PHP中进行检查。我想如果这在mySQL中是可行的,那么它会更快更容易。这适用于我数据库中的30个表。这是一个邀请系统:User1添加User2或User2添加User1(我在代码的许多地方都是这样)。所以在数据库中,user1->user2有意义,user2->user1也有意义。
user1     user2
----------------
user2     user1
user1 < user2