我正在批量执行一些 SQL 语句(使用
mysql
命令行二进制文件)。我希望我的几个 SELECT 语句之一不打印列标题,而只打印所选记录。这可能吗?
使用
-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;
“...希望... 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"
而不是";"
每行输出一个属性,而不是每行输出一行。