Por que o G em SELECT * da tabela nameG?

terminar uma consulta MySQL com \G em vez de ; fará com que o MySQL devolva o resultado definido em formato vertical, o que às vezes é mais fácil de ler se o número de colunas devolvidas é grande.

exemplo:

mysql> SELECT * FROM help_keyword LIMIT 3\G
*************************** 1. row ***************************
help_keyword_id: 0
           name: JOIN
*************************** 2. row ***************************
help_keyword_id: 1
           name: REPEAT
*************************** 3. row ***************************
help_keyword_id: 2
           name: SERIALIZABLE
3 rows in set (0.00 sec)

a minha pergunta foi feita por pura curiosidade: existe alguma razão para escolher a combinação de caracteres \G?

Author: knorv, 2010-02-17

3 answers

Os meus pensamentos:

    Provavelmente significa "vai".
  1. o Postgresql também usa o \g como terminador de declarações. O Postgresql é mais velho que o MySQL, por isso pode tê-los influenciado.

Mas como eu apontei em meu comentário para o post de Andriyev acima, ele está realmente fazendo o \G uppercase que faz com que a exibição seja colocada verticalmente. Minúsculas \g não tem esse efeito, ou se ele faz, então a documentação não menciona isso. (I don't have a MySQL install handy to try para fora.)

 7
Author: Nate C-K, 2010-02-17 00:24:08

Resposta Curta
O terminador de comando onipresente semicolon ; é de facto abreviado para o comando \g, que em si é abreviado para o comando go. O comando go é usado tanto historicamente como atualmente em outros sabores de SQL para submeter lotes de comandos a serem compilados e / ou interpretados pelo servidor. O comando \G parece herdar a letra característica de \g, e é capitalizado para indicar um comportamento modificado, pois descrito por...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Resposta mais longa (deve ser realmente \E )
A introdução de help na linha de comandos mysql lista todos os comandos mysql possíveis, incluindo go e ego mostrados acima. O comando ego adquire um 'e' pré-preenchido, indicando que esta forma do comando go também adopta um comportamento que seria normalmente imposto invocando o mysql com o interruptor semelhantemysql -E

De 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. ...

Então por que utilizar -E Como estenografia para --vertical?... Porque ambos V, v, e e já tinha sido atribuído como interruptores para outros comportamentos de Invocação. O comando ego poderia ter usado facilmente \E Como é um atalho, mas, confusamente, adoptou uma versão capitalizada do comando \g.

Em resumo...
--vertical >> -E >> ego >> \G ...Tada !

 28
Author: Gavin Jackson, 2016-10-13 20:26:00

Corresponde às opções de formatação do comando Unix 'ls'

 -1
Author: Daniel, 2010-02-16 22:58:56