选择性地插入到mysql表中

选择性地插入到mysql表中,mysql,sql,Mysql,Sql,我需要插入到mysql表中。但是,仅当满足条件时才应插入。所以我希望这样的事情发生 INSERT INTO table_name(name,qty,code) VALUES(SELECT i.name,i.qty,i.code FROM table2 i); 在这种情况下 IF i.code == 'abcd' && i.name == 'def' THEN perform insert ELSE don't insert 我无法使用WHERE子句,因为我要选择并插入除“

我需要插入到mysql表中。但是,仅当满足条件时才应插入。所以我希望这样的事情发生

 INSERT INTO table_name(name,qty,code) VALUES(SELECT i.name,i.qty,i.code FROM table2 i);
在这种情况下

 IF i.code == 'abcd' && i.name == 'def' THEN perform insert ELSE don't insert
我无法使用WHERE子句,因为我要选择并插入除“abcd”之外的所有代码,在这种情况下,我要根据条件插入代码。

尝试以下操作:

IF (i.code == 'abcd' && i.name == 'def')
    BEGIN
         INSERT INTO table_name(name,qty,code) VALUES(SELECT i.name,i.qty,i.code FROM table2 i)
    END 
    ELSE
    BEGIN
         PRINT('DONT DO ANYTHING')
    END

首先插入表2中代码为'abcd'和名称为'def'的所有行

INSERT INTO table_name SELECT i.name,i.qty,i.code FROM table2 i where i.code = 'abcd' and i.name = 'def'

现在有条件地插入其他行

可能是这样的吗

INSERT INTO table_name
(name,qty,code) 
VALUES(SELECT i.name,i.qty,i.code FROM table2 i)
WHERE IF(i.code == 'abcd' && i.name == 'def', TRUE, FALSE)

使用MySQL,草莓在评论中回答了这个问题。这是一个简单的答案,但不知何故真的很好。这是答案

 INSERT INTO table_name(name,qty,code) VALUES 
 ( 
    SELECT i.name,i.qty,i.code FROM table2 i
    WHERE (i.code = 'abcd' AND i.name = 'def') OR i.code != 'abcd'
 )

使用“WHERE(x=m和y=z)或(xm)”表示感谢,这似乎是最明智的方法。你应该在@StrawberryIt工作时回答这个问题。但不是作为单一交易。我已经在下面的帖子中给出了答案。