获取不带表格格式的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查询结果的主要内容,如果未能解决你的问题,请参考以下文章