有选择地插入mysql表

时间:2014-05-15 09:49:16

标签: 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子句,因为我想选择并插入所有代码,除非它等于&#39; abcd&#39;,在这种情况下我想根据条件插入。< / p>

4 个答案:

答案 0 :(得分:2)

@strawberry在评论中回答了这个问题。这是一个简单的答案,但不知何故真的很好。这是答案

 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'
 )

答案 1 :(得分:1)

首先插入table2中的所有行代码=&#39; abcd&#39;和name =&#39; def&#39;

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

现在有条件地插入其他行

答案 2 :(得分:-1)

试试这个:

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

答案 3 :(得分:-1)

或许这样的事情?

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 IF()-Function