我想做以下事情:
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 UPDATE
、 read the documentation 。
重要的部分是会导致 UNIQUE 索引中的重复值。因此,您需要创建一个 多列唯一索引 。
现在我不确定您是否可以通过这种方式管理订单,因此我会创建一个额外的字段,将字段的排序值串联起来,并对该字段进行唯一索引。
编辑 :您也可以只存储散列并索引它,而不是存储您的字段的串联。