假设我有一个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
过滤器插入多行?
答案 0 :(得分:1)
除去括号和where子句,您没有FROM子句,因此您的where不适用
INSERT INTO SomeTable
SELECT 1
UNION
SELECT 2
,或者如果您想在何处使用条件
SELECT 1 from dual WHERE true
union
SELECT 2 from dual WHERE true
答案 1 :(得分:0)
您的括号引起了问题。 :
INSERT INTO SomeTable (col)
SELECT 1
FROM . .
WHERE . . .
UNION
SELECT 2
FROM SomeTable
WHERE . . . ;