sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué \G en SELECT * FROM table_name\G?

Respuesta corta
El omnipresente terminador de comando de punto y coma ; es en realidad la abreviatura de \g comando, que en sí mismo es una abreviatura de go dominio. El go El comando se usa tanto históricamente como actualmente en otras versiones de SQL para enviar lotes de comandos para que el servidor los compile o interprete. El \G El comando parece heredar su letra característica de \g , y está en mayúsculas para indicar un comportamiento modificado, como se describe en...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Respuesta más larga (Realmente debería ser \E )
Ingresando help en el indicador de mysql enumera todos los posibles comandos de mysql, incluido go y ego mostrado anteriormente. El ego El comando adquiere una 'e' antepuesta que indica que esta forma de go El comando también adopta un comportamiento que normalmente se impondría al invocar mysql con el interruptor similar mysql -E

Desde man mysql... ... --vertical, -E Print query output rows vertically (one line per column value). Without this option, you can specify vertical output for individual statements by terminating them with \G. ...

Entonces, ¿por qué usar -E? como abreviatura de --vertical ?... Porque ambos V , v y e ya habían sido asignados como interruptores a otros comportamientos de invocación. El ego el comando podría haber usado fácilmente \E como atajo, pero adoptó confusamente una versión en mayúsculas de \g comando.

En resumen...
--vertical>> -E>> ego>> \G ...Tada !