MySQL命令行执行

时间:2012-02-09 09:57:36

标签: mysql bash command-line

我想知道什么选项使MySQL的命令行执行,在空回复时,打印空集。

  

mysql -u root -p myPassword mytable -e“select * from names where   第一= “%安德鲁%” \ G“

如果此查询返回空集,则命令行执行退出而不打印没有答案。如何让它打印空集?

详细模式仅打印查询。

2 个答案:

答案 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