现在我只是

INSERT INTO MY_TABLE (VAL1, VAL2)
SELECT VAL1, VAL2 FROM OTHER_TABLE;

但是,如果MY_TABLE已经有值(1, 2),我不想让它插入(2,1)如果(2,1)OTHER_TABLE中;
有没有办法做到这一点,甚至在创建表的时候?
我已经尝试过ALTER表并创建一个UNIQUE约束,但它不考虑重复项

最佳答案

试试这个。

SELECT VAL1,
       VAL2
FROM   OTHER_TABLE a
WHERE  NOT EXISTS (SELECT 1
                   FROM   my_table b
                   WHERE  ( a.val1 = b.val2
                            AND a.val2 = b.val1 )
                           OR ( a.val1 = b.val1
                                AND a.val2 = b.val2 ))

关于mysql - 不要在SQL中插入重复项的任何组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28184977/

10-12 04:52