如何禁止单个 SQL 语句的列标头输出?

我正在批量执行一些 SQL 语句(使用 mysql命令行二进制文件)。我希望我的几个 SELECT 语句中的一个不打印列标题,只打印选定的记录。这可能吗?

190044 次浏览

使用 -N(-N的别名是 --skip-column-names)选项调用 mysql:

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 ...

你可以这样假装:

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


-- without column headings
select column1 as '', column2 as '' from some_table;

“ ... want... SELECT 语句不打印列标题...”的一个很好的理由是用于记录输出。

感谢@tom _ warfield,我这样做了:

select "Relevant details from Stock Entry." as ""\G
select
SE.name
, SED.item_code
, SED.s_warehouse
, SED.t_warehouse
, REPLACE(SED.serial_no,'\n',', ') as serial_no
from
`tabStock Entry` SE left join `tabStock Entry Detail` SED
:
:

我的输出如下:

*************************** 1. row ***************************
: Relevant details from Stock Entry.
+--------------------+-------------------------------+--------------------------+----------------------------+---------------------------------------------------------------------------------------------------------------------+
| name               | item_code                     | s_warehouse              | t_warehouse                | serial_no                                                                                                           |

请注意,"\G"而不是 ";"每行输出一个属性,而不是每行输出一行。