Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum das \G in SELECT * FROM Tabellenname\G?

Kurze Antwort
Das allgegenwärtige Semikolon-Befehlsende ; ist eigentlich eine Abkürzung für \g Befehl, der selbst eine Abkürzung für go ist Befehl. Die go Der Befehl wird sowohl historisch als auch derzeit in anderen SQL-Varianten verwendet, um Stapel von Befehlen zu übermitteln, die vom Server kompiliert und / oder interpretiert werden sollen. Der \G Der Befehl scheint seinen charakteristischen Buchstaben von \g zu erben , und wird groß geschrieben, um weiter auf ein geändertes Verhalten hinzuweisen, wie beschrieben durch ...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Längere Antwort (Eigentlich sollte es \E sein )
Eingabe von help an der mysql-Eingabeaufforderung listet alle möglichen mysql-Befehle auf, einschließlich go und ego oben gezeigt. Das ego Befehl erhält ein vorangestelltes 'e', ​​das anzeigt, dass diese Form von go ist Der Befehl nimmt auch ein Verhalten an, das normalerweise durch den Aufruf von mysql mit dem ähnlichen Schalter mysql -E auferlegt würde

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

Warum also -E verwenden? als Abkürzung für --vertical ?... Weil beide V , v , und e wurden bereits anderen Aufrufverhalten als Schalter zugewiesen. Das ego Befehl hätte einfach \E verwenden können als Abkürzung verwendet, aber verwirrenderweise eine großgeschriebene Version des \g übernommen hat Befehl.

Zusammengefasst...
--vertikal>> -E>> Ego>> \G ...Tada !