Как я могу подавить вывод заголовка столбца для одного оператора SQL?

Я выполняю некоторые операторы SQL в пакетном режиме (используя двоичный файл командной строки mysql). Я хочу, чтобы один из моих нескольких операторов SELECT не печатал заголовки столбцов, а только выбранные записи. Это возможно?


person einpoklum    schedule 19.04.2013    source источник


Ответы (2)


Запустите mysql с параметром -N (псевдоним для -N--skip-column-names):

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

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

Спасибо ErichBSchulz за указание псевдонима -N.

Чтобы удалить сетку (вертикальные и горизонтальные линии) вокруг результатов, используйте -s (--silent). Столбцы разделяются символом TAB.

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

id  name
1   pete
2   john
3   mike

Чтобы вывести данные без заголовков и без сетки, просто используйте как -s, так и -N.

mysql -sN ...
person suspectus    schedule 02.01.2014
comment
-sN хорошо сработал для меня, чтобы назначить вывод переменной в скрипте: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS... - person Michael J; 28.04.2016
comment
Это относится ко всему сеансу, а не только к одному оператору SQL. В Oracle SQLPlus есть set feedback on и set feedback off, которые можно использовать в любом месте сеанса. Есть ли у MySQL эквивалент? Похоже, это то, что искал ОП. - person codeforester; 13.03.2018
comment
просто краткий комментарий, упростите, используя выберите * из testdb.names; без явного «использования». - person fcm; 25.03.2019
comment
Длинная опция для -s --silent, для -N --skip-column-names. -B или --batch также хорошо работают вместо -s. - person Ale; 20.01.2021

Подделать можно так:

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

-- without column headings
select column1 as '', column2 as '' from some_table;
person Tom Warfield    schedule 02.07.2014
comment
Error: Type mismatch: expected type string, but got ошибка с пустым псевдонимом - person QkiZ; 04.06.2020
comment
Похоже, эта ошибка исходит от MySQL Workbench, а не от MySQL. В любом случае вы также можете использовать один пробел вместо пустой строки, и это работает в MySQL Workbench: select column1 as ' ', column2 as ' ' from some_table; - person Tom Warfield; 07.06.2020