mysql \g和\G的作用_它们不能添加符号; 及原因


最近在查看mysql主从状态时(使用show slave status 命令),对于\g\G 使用较多,也遇到了一些问题,写此文章总结记录一下。

\g 的作用

\g 就是等同于; 表示此sql语句的结束,如下展示:
mysql \g和\G的作用_它们不能添加符号; 及原因
mysql \g和\G的作用_它们不能添加符号; 及原因
这两种情况的结果都是一样的。

\G 的作用

其主要是为了垂直展示命令的执行结果,当查询结果字段较多,使用此方式教佳,看看如下对比:
使用常规方式查询:
mysql \g和\G的作用_它们不能添加符号; 及原因
因为字段太多,都第二行了,字段和值都错开了,不好看。
再看看加上\G:
mysql \g和\G的作用_它们不能添加符号; 及原因
是不是明显好多了。☺

\g\G 的使用注意事项,不要加;

读者再回顾看看\g\G 的使用截图,都是没有在后面追加; 的,其实是因为如果添加了会报如下错误:
mysql \g和\G的作用_它们不能添加符号; 及原因
字面上的意思就是没有指定查询。
对于上面的情况\g\G 如果后面加上;都会报这个错误。

为什么加上;报错呢

我从mysqlhelp 中找到了原因,看下图:
mysql \g和\G的作用_它们不能添加符号; 及原因原来是\g\G; 一样都有结束一段command 的作用(Send command to mysql server)。如果我们在show slave status\g 后面再上;,不就等于show slave status;; 了,这其实是两个命令,前面的也就是show slave status;正常,后面的命令也就是; 当然mysql就报出No query specified(都没有查询) 了,下面的截图也能印证我们的想法:
mysql \g和\G的作用_它们不能添加符号; 及原因

总结

  1. 先介绍了\g\G 两个转移字符的作用。
  2. 然后介绍了它们在使用中的问题,也就是不能追加;,最后解释了不能追加;的原因。