📦

MySQLで結果を縦に表示する "\G" はなぜ "G" なのか

2024/03/12に公開

MySQLで出力を縦にレイアウトするときに使う "\G" がなぜ "G" という文字なのか気になったので調べてみました。

と言っても以下のStack Overflowを日本語で要約しただけなので、こちらを参照した方が詳しいです。

https://stackoverflow.com/questions/2277014/why-the-g-in-select-from-table-name-g

公式の見解ではないので真偽のほどは分かりません。公式ドキュメントでは、なぜGなのかについての言及は見つけられませんでした。見つけた人がいれば教えてください。

なぜ\Gなのか

ヒントは $ man mysqlmysql> help にあるらしい。

経緯

そもそもステートメントの最後につけるセミコロンがなんなのか

  • セミコロン (;) は \g の省略形
  • \g はgoの略で、MySQLサーバーにコマンドを送るという意味

縦に表示するコマンドラインオプション

  • デフォルトで縦に表示するための --vertical というコマンドラインオプションがある
  • この省略形を作る際、-v も -V も -e もすでに使っていたので、-E になった
    • vはverticalの頭文字だけど、次にeを検討したのは謎。2文字目を取った?

$ mysql --vertical$ mysql -E でクライアントを起動すると、常に \G をつけたときと同じ挙動になる。

\Gになった理由

  • MySQLサーバーにコマンドを送り、結果を縦に表示するやつは-Eのgoなので、egoという名前になった
  • \g の仲間なのでこれを \G とすることにした

結論

--vertical >> -E >> ego >> \G

わかるようなわからないような。

Discussion