我想知道什么选项使MySQL的命令行执行,在空回复时,打印空集。
mysql -u root -p myPassword mytable -e“select * from names where 第一= “%安德鲁%” \ G“
如果此查询返回空集,则命令行执行退出而不打印没有答案。如何让它打印空集?
详细模式仅打印查询。
答案 0 :(得分:1)
您可以尝试-q(快速)选项。
让我们看看 - 1行结果:
$ mysql database -q -e 'select username,user_id from ... where true limit 1'
+---------------------------+----------+
| username | user_id |
+---------------------------+----------+
| administrator | 1111 |
+---------------------------+----------+
现在是空集:
$ mysql database -q -e 'select username,user_id from ... where false'
+---------------------------+----------+
| username | user_id |
+---------------------------+----------+
+---------------------------+----------+
我认为由于无缓冲输出,这是mysql命令中的某种实现细节。如果他们在将来的版本中更改它,请不要感到惊讶。
答案 1 :(得分:0)
你可以用bash检查它。
if [ "a$(mysql -u root -p myPassword mytable -e "select * from names where first="%andrew%"\G")" = "a" ]
then
echo Empty set
else
echo Not empty set
fi