获取不带表格格式的SQL查询结果

Posted

技术标签:

【中文标题】获取不带表格格式的SQL查询结果【英文标题】:Get the SQL query result without the table format 【发布时间】:2013-05-18 16:12:38 【问题描述】:

--disable-column-names 选项一样,我们是否可以选择不使用表格式来获取 SQL 查询?例如:

mysql -u username -p password  --disable-column-names --execute "select name from test"

结果如下:

-----
| A |
| B |
| C |
| D |
-----

是否可以使用下面的一些sql程序选项修饰符得到查询结果,没有表格格式

我想要这个:

A
B
C
D

【问题讨论】:

你可以使用SELECT .. INTO OUTFILE 'file_name' export_options 【参考方案1】:

-B 标志添加到mysql

mysql -B -u username -ppassword \
    --disable-column-names \
    --execute "select name from mydb.test"
-B, --batch: Print results in nontabular output format.

--execute: Execute the statement and quit.

请注意,-B/--batch 也启用了--silent 开关。

【讨论】:

很适合导出 - 在 mysql 客户端中有什么方法吗? -b 已弃用,请改用--batch 无论如何要从 sql 脚本中完成? --database <database-name>选项添加到命令行是个好主意。【参考方案2】:

虽然其他答案是偶然的,但正确的开关实际上是-s,它是--silent 的缩写。

您可能还需要为--raw 输出额外指定-r,这也会禁用字符转义,否则换行符、制表符、空字符和反斜杠将分别表示为\n、\t、\0 和\。

   ·   --silent, -s

       Silent mode. Produce less output. This option can be given multiple
       times to produce less and less output.

       This option results in nontabular output format and escaping of
       special characters. Escaping may be disabled by using raw mode; see
       the description for the --raw option.

   ·   --raw, -r

       For tabular output, the “boxing” around columns enables one column
       value to be distinguished from another. For nontabular output (such
       as is produced in batch mode or when the --batch or --silent option
       is given), special characters are escaped in the output so they can
       be identified easily. Newline, tab, NUL, and backslash are written
       as \n, \t, \0, and \\. The --raw option disables this character
       escaping.

       The following example demonstrates tabular versus nontabular output
       and the use of raw mode to disable escaping:

           % mysql
           mysql> SELECT CHAR(92);
           +----------+
           | CHAR(92) |
           +----------+
           | \        |
           +----------+
           % mysql -s
           mysql> SELECT CHAR(92);
           CHAR(92)
           \\
           % mysql -s -r
           mysql> SELECT CHAR(92);
           CHAR(92)
           \

- 甲骨文公司

MySQL 5.7 06/07/2018

【讨论】:

以上是关于获取不带表格格式的SQL查询结果的主要内容,如果未能解决你的问题,请参考以下文章

两张dbf格式的表格,我要用SQL语句查询数据,要怎么弄。

SQL中,我想把SQL查询分析器查询出来的结果,导出到EXCEL表格,求各位大侠指点。

sql查询结果格式

如何仅从 SQL 查询输出中获取不带括号的值

plsql如何设置查询结果格式化

Oracle PL/SQL查询结果如何自动换行