Как заставить запрос MySQL ничего не возвращать

#mysql

#mysql

Вопрос:

Есть ли запрос, который может быть передан в MySQL из оболочки, который гарантированно ничего не вернет (нет null , не ‘0’, а вообще ничего)? Я могу создать запрос на основе моего собственного дизайна базы данных, который в данный момент ничего не вернет, например

 select foo from bar where baz="not in my database";
  

но это не гарантирует, что будет работать в будущем, если это значение будет добавлено, и приведет к ошибкам в других экземплярах mysql, если у них нет таблицы с именем bar или столбцов с именем foo или baz . Я могу выбрать пустую строку, например

 select '';
  

но это возвращает пустую строку, к которой добавляется новая строка, а не ничего.

Я могу приблизиться к тому, что хочу, просто выгрузив результаты, такие как

 mysql -e "select true" > /dev/null 2>amp;1
  

но, идя по этому пути, я задумался:
Есть ли запрос, который можно передать в MySQL из оболочки, который гарантированно ничего не вернет?

Ответ №1:

Вы можете выбрать из двойной таблицы следующим образом:

 mysql> select true from dual where false;
Empty set (0.00 sec)
  

Если вы используете MySQL 8.0, вы также можете сделать это:

 mysql> select true where false;
Empty set (0.00 sec)
  

Ответ №2:

Вы можете гарантировать, что MySQL ничего не вернет, если вы передадите ему пустую строку:

 mysql -e ""