Mysql
 sql >> Database >  >> RDS >> Mysql

Perché \G in SELECT * FROM nome_tabella\G?

Risposta breve
L'onnipresente punto e virgola terminatore di comando ; è in realtà un'abbreviazione per \g comando, che è di per sé una scorciatoia per go comando. Il go command è usato sia storicamente che attualmente in altre versioni di SQL per inviare batch di comandi da compilare e/o interpretare dal server. Il \G il comando sembra ereditare la sua lettera caratteristica da \g , ed è scritto in maiuscolo per indicare ulteriormente un comportamento modificato, come descritto da...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Risposta più lunga (Dovrebbe essere davvero \E )
Inserimento di help al prompt di mysql elenca tutti i possibili comandi di mysql, incluso go e ego sopra riportati. L'ego comando acquisisce una 'e' preceduta che indica che questa forma del go il comando adotta anche un comportamento che normalmente verrebbe imposto invocando mysql con lo switch simile mysql -E

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

Allora perché usare -E come abbreviazione di --vertical ?... Perché entrambi V , v e e era già stato assegnato come switch ad altri comportamenti di invocazione. L'ego il comando avrebbe potuto semplicemente usare \E poiché è una scorciatoia, ma ha adottato in modo confuso una versione in maiuscolo del \g comando.

In sintesi...
--verticale>> -E>> ego>> \G ...Tada!