我想做以下事情:

INSERT INTO table1 (term1, term2, number) values ('A','B',10);

但是,如果值 A 和 B 已经存在于 table1 中,无论 的顺序如何,即。谓词
(term1='A' && term2='B') OR (`term1='B' && term2='A')

成立,那么我只想更新列号。有没有办法做到这一点?

最佳答案

处理这种情况的(可能是) 干净的方法是使用 INSERT ... ON DUPLICATE KEY UPDATEread the documentation



重要的部分是会导致 UNIQUE 索引中的重复值。因此,您需要创建一个 多列唯一索引

现在我不确定您是否可以通过这种方式管理订单,因此我会创建一个额外的字段,将字段的排序值串联起来,并对该字段进行唯一索引。

编辑 :您也可以只存储散列并索引它,而不是存储您的字段的串联。

10-08 01:12