我需要插入一个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>
答案 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