sql >> Databasteknik >  >> RDS >> Mysql

Varför \G i SELECT * FROM tabellnamn\G?

Kort svar
Den allestädes närvarande semikolonkommandoavslutningen ; är faktiskt en förkortning för \g kommandot, vilket i sig är en förkortning för go kommando. go kommando används både historiskt och för närvarande i andra varianter av SQL för att skicka batcher av kommandon som ska kompileras och/eller tolkas av servern. \G kommandot verkar ärva sin karaktäristiska bokstav från \g , och är versaler för att ytterligare indikera ett modifierat beteende, som beskrivs av...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Längre svar (Det borde verkligen vara \E )
Ange help vid mysql-prompten listar alla möjliga mysql-kommandon, inklusive go och ego visat ovan. ego kommandot erhåller ett prependerat "e" som indikerar att denna form av go kommandot antar också ett beteende som normalt skulle påtvingas genom att anropa mysql med liknande switch mysql -E

Från 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. ...

Så varför använda -E som en förkortning för --vertical ?... Eftersom både V , v och e hade redan tilldelats som växlar till andra anropsbeteenden. ego kommandot kunde enkelt ha använt \E eftersom det är genväg, men förvirrande nog använde en versal version av \g kommando.

Sammanfattningsvis...
--vertikal>> -E>> ego>> \G ...Tada !



  1. Välj count(*) från flera tabeller

  2. Ta bort dubbletter av rader i MySQL (ignorerar primärnyckel)

  3. De vanligaste problemen med MHA och hur man åtgärdar dem

  4. Konvertering av en datetime2-datatyp till en datetime-datatyp resulterar i ett värde utanför intervallet