Como posso suprimir a saída do cabeçalho da coluna para uma única instrução SQL?

113

Estou executando algumas instruções SQL em lote (usando o mysqlbinário de linha de comando). Quero que uma das minhas várias instruções SELECT não imprima os cabeçalhos das colunas, apenas os registros selecionados. Isso é possível?

einpoklum
fonte

Respostas:

247

Invoque o mysql com a opção -N(o alias de -Nis --skip-column-names):

mysql -N ...
use testdb;
select * from names;

+------+-------+
|    1 | pete  |
|    2 | john  |
|    3 | mike  |
+------+-------+
3 rows in set (0.00 sec)

Agradecemos a ErichBSchulz por apontar o apelido -N.

Para remover a grade (as linhas verticais e horizontais) em torno dos resultados, use -s( --silent). As colunas são separadas por um TABcaractere.

mysql -s ...
use testdb;
select * from names;

id  name
1   pete
2   john
3   mike

Para enviar os dados sem cabeçalhos e sem grade, basta usar -se -N.

mysql -sN ...
Suspeito
fonte
3
o atalho em-N
ErichBSchulz
4
-sN funcionou bem para mim atribuir a saída a uma variável em um script: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS...
Michael J
5
Isso se aplica a toda a sessão, não apenas a uma única instrução SQL. O Oracle SQLPlus tem set feedback one set feedback offpode ser usado em qualquer lugar em uma sessão. O MySQL tem um equivalente? Parece que era isso que o OP estava procurando.
codeforester
apenas um breve comentário, simplifique usando select * from testdb.names; sem 'uso' explícito.
fcm
15

Você pode fingir assim:

-- with column headings 
select column1, column2 from some_table;

-- without column headings
select column1 as '', column2 as '' from some_table;
Tom Warfield
fonte
Error: Type mismatch: expected type string, but goterro com alias vazio
QkiZ
Parece que esse erro está vindo do MySQL Workbench, não do MySQL. De qualquer forma, você também pode usar um único espaço em branco em vez de uma string vazia, e isso parece funcionar no MySQL Workbench:select column1 as ' ', column2 as ' ' from some_table;
Tom Warfield