这可能与 SQL 没有什么关系,因为我确信其他命令也会这样做。
在这种情况下,我通过 shell 发送一个查询,如果查询与任何表都不匹配,则实际上不会返回任何内容,甚至不会返回回车符。
我怎样才能编写脚本来在这种情况下返回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