Wie kann ich die Ausgabe von Spaltenüberschriften für eine einzelne SQL-Anweisung unterdrücken?

113

Ich führe einige SQL-Anweisungen im Batch aus (mithilfe der mysqlBefehlszeilen-Binärdatei). Ich möchte, dass eine meiner mehreren SELECT-Anweisungen nicht die Spaltenüberschriften, sondern nur die ausgewählten Datensätze druckt. Ist das möglich?

einpoklum
quelle

Antworten:

247

Rufen Sie MySQL mit der Option -N(der Alias ​​für -Nis --skip-column-names) auf:

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

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

Dank an ErichBSchulz für den Hinweis auf den Alias ​​-N.

Verwenden Sie -s( --silent), um das Raster (die vertikalen und horizontalen Linien) um die Ergebnisse zu entfernen . Spalten werden durch ein TABZeichen getrennt.

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

id  name
1   pete
2   john
3   mike

Um die Daten ohne Header und ohne Raster auszugeben, verwenden Sie einfach beide -sund -N.

mysql -sN ...
Verdächtiger
quelle
3
die Abkürzung in-N
ErichBSchulz
4
-sN hat gut funktioniert, um die Ausgabe einer Variablen in einem Skript zuzuweisen: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS...
Michael J
5
Dies gilt für die gesamte Sitzung, nicht nur für eine einzelne SQL-Anweisung. Oracle SQLPlus hat set feedback onund set feedback offdas kann überall in einer Sitzung verwendet werden. Hat MySQL ein Äquivalent? Sieht so aus, als hätte OP danach gesucht.
Codeforester
nur ein kurzer Kommentar, vereinfachen Sie mit select * aus testdb.names; ohne explizite "Verwendung".
fcm
15

Sie können es so vortäuschen:

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

-- without column headings
select column1 as '', column2 as '' from some_table;
Tom Warfield
quelle
Error: Type mismatch: expected type string, but gotFehler mit leerem Alias
QkiZ
Dieser Fehler kommt anscheinend von MySQL Workbench, nicht von MySQL. Auf jeden Fall können Sie anstelle einer leeren Zeichenfolge auch ein einzelnes Leerzeichen verwenden, und das scheint in MySQL Workbench zu funktionieren:select column1 as ' ', column2 as ' ' from some_table;
Tom Warfield