Возможно, это не имеет никакого отношения к SQL, поскольку я уверен, что и другие команды делают то же самое.
В этом случае я отправляю запрос через оболочку, и если запрос не соответствует ни одной таблице, то буквально ничего не возвращается, даже возврат каретки.
Как мне написать скрипт для своей оболочки, чтобы в таком случае вместо этого возвращалось 0
или ?false
Вот пример команды, которая вызывает мою проблему:
mysql -u Popey --password='Misses Jono' -s -N --disable-column-names -e
"select term_id from shuttleworth.wp_terms where name = 'nonExistentName' LIMIT 1;"
решение1
-v
опция для подробного режима должна дать вам больше вывода. Я не могу попробовать это прямо сейчас, так как у меня не запущен SQL-сервер.
решение2
Мой двоюродный брат предложил мне это решение. Проверил, работает.
Одна линия:
response=$(mysql -u popey --password='Misses Jono' -s -N --disable-column-names -e "select term_id from shuttleworth.wp_terms where name = 'non-existent-name' LIMIT 1;") && if [ -z "$response" ]; then echo false; else echo $response; fi`
Разбито:
response=
$(mysql
-u popey
--password='Misses Jono'
-s -N --disable-column-names
-e
"SELECT term_id
FROM shuttleworth.wp_terms
WHERE name = 'non-existent-name'
LIMIT 1;"
)
&& if [ -z "$response" ];
then echo false;
else echo $response;
fi