Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi le \G dans SELECT * FROM nom_table\G ?

Réponse courte
Le terminateur de commande point-virgule omniprésent ; est en fait un raccourci pour le \g commande, qui est en soi un raccourci pour le go commande. Le go La commande est utilisée à la fois historiquement et actuellement dans d'autres versions de SQL pour soumettre des lots de commandes à compiler et/ou à interpréter par le serveur. Le \G la commande semble hériter de sa lettre caractéristique de \g , et est en majuscule pour indiquer un comportement modifié, comme décrit par...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Réponse plus longue ( Il devrait vraiment être \E )
En saisissant help à l'invite mysql répertorie toutes les commandes mysql possibles, y compris go et ego montré ci-dessus. L'ego commande acquiert un 'e' préfixé indiquant que cette forme de go La commande adopte également un comportement qui serait normalement imposé en appelant mysql avec le commutateur similaire mysql -E

À partir 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. ...

Alors pourquoi utiliser -E comme raccourci pour --vertical ?... Parce que les deux V , v , et e avaient déjà été assignés comme commutateurs à d'autres comportements d'invocation. L'ego la commande aurait pu facilement utiliser \E car c'est un raccourci, mais a adopté de manière confuse une version en majuscule du \g commande.

En résumé...
--vertical>> -E>> ego>> \G ...Tada !