假设我有一张桌子SomeTable
与一个INT
列。
此查询工作正常:
INSERT INTO SomeTable
(SELECT 1 WHERE true)
UNION
(SELECT 2 FROM SomeTable WHERE true)
但这会产生语法错误:
INSERT INTO SomeTable
(SELECT 1 WHERE true)
UNION
(SELECT 2 WHERE true)
错误代码:1064。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第4行使用“WHERE true”附近的正确语法
错误的原因是什么?
我怎么用WHERE
过滤器插入多行?
删除括号和where子句,而不是FROM子句,因此您的位置不适用
INSERT INTO SomeTable
SELECT 1
UNION
SELECT 2
或者如果你想要一个where条件你可以使用dual
SELECT 1 from dual WHERE true
union
SELECT 2 from dual WHERE true
括号会导致问题。 :
INSERT INTO SomeTable (col)
SELECT 1
FROM . .
WHERE . . .
UNION
SELECT 2
FROM SomeTable
WHERE . . . ;