命令行MySQL选择不同的字段终止符



我有一个bash脚本,我在其中运行MySQL语句:

#!/usr/bin/env bash
mysql -N --user=foo --password=bar --host=baz -A -D db -e '
SELECT ... 
FROM fieldA, fieldB 
LIMIT 100'

这很好用。但是,我希望得到一个制表符分隔的结果,而不是返回的表格格式。

我尝试了以下操作,但出现语法错误:

#!/usr/bin/env bash
mysql -N --user=foo --password=bar --host=baz -A -D db -e '
SELECT ... 
FROM fieldA, fieldB 
LIMIT 100 
FIELDS TERMINATED BY "t"'

错误为:

ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY "t"' at line 10

我也试过

...
FIELDS TERMINATED BY 't''

但我也犯了同样的错误。

有没有一种正确的方法可以从这种MySQL运行中更改字段终止符?谢谢你的建议。

根据mysql客户端的手册页:

交互使用时,查询结果显示在ASCII表中总体安排当非交互使用时(例如,作为过滤器)结果显示在制表符分隔格式。

您对-e的使用使mysql将其视为一个交互式命令。但是客户端也可以通过stdin接受输入。这就是你想要的:

mysql -N --user=foo --password=bar --host=baz -A db <<-'EOF'
SELECT ...
FROM fieldA, fieldB
LIMIT 100
EOF

最新更新