MySQL INSERT с SELECT UNION дает синтаксическую ошибку - PullRequest
0 голосов
/ 04 марта 2019

Предположим, у меня есть таблица SomeTable с одним столбцом INT.

Этот запрос работает нормально:

INSERT INTO SomeTable
(SELECT 1 WHERE true) 
UNION
(SELECT 2 FROM SomeTable WHERE true) 

enter image description here

Но это дает синтаксическую ошибку:

INSERT INTO SomeTable
(SELECT 1 WHERE true) 
UNION
(SELECT 2 WHERE true) 

Код ошибки: 1064. У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с «WHERE true)» в строке 4

В чем причина ошибки?

Как ещеВставить несколько строк с фильтром WHERE?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Удалите скобки и предложение where у вас нет предложения FROM, так что ваше местоположение не применимо

INSERT INTO SomeTable
SELECT 1 
UNION
SELECT 2 

или если вы хотите использовать условие где вы можете использовать из двойного

SELECT 1 from dual WHERE true
union 
SELECT 2 from  dual  WHERE true
0 голосов
/ 04 марта 2019

Ваша скобка вызывает проблему.:

INSERT INTO SomeTable (col)
     SELECT 1 
     FROM . . 
     WHERE . . .
     UNION
     SELECT 2 
     FROM SomeTable 
     WHERE . . . ;
...