#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 ""