Comment puis-je supprimer la sortie d'en-tête de colonne pour une seule instruction SQL?

113

J'exécute des instructions SQL par lots (en utilisant le mysqlbinaire de ligne de commande). Je veux qu'une de mes nombreuses instructions SELECT n'imprime pas les en-têtes de colonne, juste les enregistrements sélectionnés. Est-ce possible?

einpoklum
la source

Réponses:

247

Appelez mysql avec l' option -N(l'alias pour -Nest --skip-column-names):

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

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

Nous remercions ErichBSchulz pour avoir signalé l'alias -N.

Pour supprimer la grille (les lignes verticales et horizontales) autour des résultats, utilisez -s( --silent). Les colonnes sont séparées par un TABcaractère.

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

id  name
1   pete
2   john
3   mike

Pour sortir les données sans en-têtes et sans grille, utilisez simplement -set -N.

mysql -sN ...
suspectus
la source
3
le raccourci dans-N
ErichBSchulz
4
-sN a bien fonctionné pour moi d'assigner la sortie à une variable dans un script: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS...
Michael J
5
Cela s'applique à l'ensemble de la session, pas seulement à une seule instruction SQL. Oracle SQLPlus a set feedback onet set feedback offqui peut être utilisé n'importe où dans une session. MySQL a-t-il un équivalent? On dirait que c'est ce que recherchait OP.
codeforester
juste un bref commentaire, simplifiez en utilisant select * from testdb.names; sans «utilisation» explicite.
fcm
15

Vous pouvez le simuler comme ceci:

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

-- without column headings
select column1 as '', column2 as '' from some_table;
Tom Warfield
la source
Error: Type mismatch: expected type string, but goterreur avec alias vide
QkiZ
On dirait que cette erreur vient de MySQL Workbench, pas de MySQL. Quoi qu'il en soit, vous pouvez également utiliser un seul espace vide au lieu d'une chaîne vide, et cela semble fonctionner dans MySQL Workbench:select column1 as ' ', column2 as ' ' from some_table;
Tom Warfield