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

命令行MySQL使用不同的字段终止符进行选择,mysql,bash,command-line,termination,metacharacters,Mysql,Bash,Command Line,Termination,Metacharacters,我有一个运行MySQL语句的bash脚本: #!/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 --

我有一个运行MySQL语句的
bash
脚本:

#!/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"'
错误是:

第3行的错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第10行“以“\t”结尾的字段附近使用的语法是否正确

我也试过了

    ...
    FIELDS TERMINATED BY \'\t\''
但我也犯了同样的错误


有没有正确的方法来更改这种MySQL运行的字段终止符?感谢您的建议。

根据mysql客户端的手册页:

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

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

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

mysql-N--user=foo--password=bar--host=baz-adb这太完美了。我忘了这件事。干杯