Sto eseguendo alcune istruzioni SQL in batch (utilizzando il binario della riga di comando mysql
). Voglio una delle mie diverse istruzioni SELECT per non stampare le intestazioni delle colonne, solo i record selezionati. È possibile?Come posso sopprimere l'output dell'intestazione di colonna per una singola istruzione SQL?
63
A
risposta
133
Invoke mysql con l'opzione -N
(l'alias per -N
è --skip-column-names
):
mysql -N ...
use testdb;
select * from names;
+------+-------+
| 1 | pete |
| 2 | john |
| 3 | mike |
+------+-------+
3 rows in set (0.00 sec)
credito per ErichBSchulz per sottolineare l'alias -N.
Per rimuovere la griglia (le linee verticale e orizzontale) attorno ai risultati utilizzare -s
(--silent
). Le colonne sono separate con un carattere TAB
.
mysql -s ...
use testdb;
select * from names;
id name
1 pete
2 john
3 mike
Per inviare i dati senza intestazioni e senza griglia basta usare sia -s
e -N
.
mysql -sN ...
14
Si può fingere in questo modo:
-- with column headings
select column1, column2 from some_table;
-- without column headings
select column1 as '', column2 as '' from some_table;
+1
Questo non è un brutto trucco ... – einpoklum
il collegamento nella '-N' – ErichBSchulz
-sN funzionato bene per me per assegnare l'output ad una variabile in uno script:' TABELLE = $ (mysql -sN -u $ DB_USER -p $ DB_PASS' ... –