MySQL命令行执行

问题描述:

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

的MySQL -u根-p MYPASSWORD mytable的-e “从名称中选择*,其中 第一=” %安德鲁% “\ G”

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

详细模式只打印查询。

你可以在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 

您可以尝试-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命令执行的细节,由于无缓冲输出。如果他们在将来的版本中进行更改,请不要感到惊讶。