Jak mogę pominąć wyjście nagłówka kolumny dla pojedynczej instrukcji SQL?

114

Wykonuję kilka instrukcji SQL wsadowo (używając mysqlpliku binarnego wiersza polecenia). Chcę, aby jedna z kilku moich instrukcji SELECT nie drukowała nagłówków kolumn, a jedynie wybrane rekordy. czy to możliwe?

einpoklum
źródło

Odpowiedzi:

248

Wywołaj mysql z opcją -N(alias dla -Nis --skip-column-names):

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

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

Podziękowania dla ErichBSchulz za wskazanie aliasu -N.

Aby usunąć siatkę (pionowe i poziome linie) wokół wyników, użyj -s( --silent). Kolumny są oddzielone TABznakiem.

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

id  name
1   pete
2   john
3   mike

Aby wyprowadzić dane bez nagłówków i siatki, użyj obu -si -N.

mysql -sN ...
suspectus
źródło
4
skrót w-N
ErichBSchulz,
4
-sN działało dobrze, gdy przypisałem wynik do zmiennej w skrypcie: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS...
Michael J
5
Dotyczy to całej sesji, a nie tylko jednej instrukcji SQL. Oracle SQLPlus ma set feedback oni set feedback offmoże być używany w dowolnym miejscu sesji. Czy MySQL ma odpowiednik? Wygląda na to, że właśnie tego szukał OP.
codeforester
tylko krótki komentarz, uprość używając select * z testdb.names; bez wyraźnego „użycia”.
fcm
15

Możesz to udawać w ten sposób:

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

-- without column headings
select column1 as '', column2 as '' from some_table;
Tom Warfield
źródło
Error: Type mismatch: expected type string, but gotbłąd z pustym aliasem
QkiZ
Wygląda na to, że ten błąd pochodzi z MySQL Workbench, a nie z MySQL. W każdym razie możesz również użyć pojedynczej spacji zamiast pustego ciągu, co wydaje się działać w MySQL Workbench:select column1 as ' ', column2 as ' ' from some_table;
Tom Warfield,