Я использую хранимую процедуру в MySQL с оператором CASE.Как выбрать пустой набор результатов?
В предложении ELSE CASE (эквивалентно по умолчанию:) Я хочу выбрать и вернуть пустой набор результатов, избегая при этом ошибки SQL, не обрабатывая случай ELSE, и вместо этого возвращать пустой набор результатов как если обычный запрос не возвращал строк.
До сих пор мне удалось сделать это, используя что-то вроде:
Select NULL From users Where False
Но я должен назвать существующую таблицу, как «пользователей» в этом примере. Он работает, но я бы предпочел более элегантный способ, который не сломается, если в конечном итоге имя таблицы будет переименовано или отброшено.
Я пробовал Select NULL Where False
, но он не работает.
Использование Select NULL
не возвращает пустой набор, а одну строку с столбцом с именем NULL и значением NULL.
Было бы странной схемой, которая не имела ни одного стола, на котором вы могли бы гарантировать существование! – onedaywhen
Вы правы. Существует множество таблиц, проблема заключается в том, что после того, как вы выберете одну таблицу, если в будущем эта страница будет удалена или переименована, код, который вы написали, больше не работает, и вы будете связывать две части программного обеспечения, которые не имеют ничего делать друг с другом, но одно изменение в одном из них заставляет другую прекратить работать.Это называется связью, а связь в программном обеспечении - это, как правило, плохая идея. – Petruza
@Petruza: В те дни, когда я использовал Access/Jet, моя схема включала бы постоянную вспомогательную таблицу для этой цели под названием «RowRowTable». – onedaywhen