Я могу использовать несколько операторов в JDBC подготовленный запрос?

Я хотел бы выполнить что-то вроде этого на своем сервере MySQL:

SET @id=(SELECT id FROM lookupTable WHERE field=?);
(SELECT * FROM table2 WHERE id=@id)
UNION
(SELECT * FROM table3 WHERE id=@id)
UNION
(SELECT * FROM table4 WHERE id=@id);

Это хорошо работает от консоли, но не от моего Java PreparedStatement. Это выдает исключение с синтаксической ошибкой в''; разделение операторов. Мне нравится переменная, потому что я не должен повторять пункт поиска, но я мог переписать его при необходимости. Эквивалентное СОЕДИНЕНИЕ является немного неловким с пунктами ОБЪЕДИНЕНИЯ также.

Спасибо,

Joshua

10
задан Joshua Martell 29 July 2010 в 19:19
поделиться

2 ответа

JDBC никогда не поддерживал синтаксический анализ запросов с разделителями. Каждый вызов - это одно обращение к базе данных. Возможно, вам удастся добиться того, что вы имели в виду, выполняя PreparedStatement.addBatch () для каждого отдельного запроса, а затем выполняя и получая два набора результатов?

5
ответ дан 4 December 2019 в 02:49
поделиться

Просто запустив это как два отдельных запроса (в рамках одного соединения), вы получите те же результаты.

2
ответ дан 4 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: