包装MySQL列名

时间:2014-02-19 17:48:51

标签: mysql

肯定以前曾经问过这个问题,但是我的搜索还没有提出解决方案。

MySQL有没有办法包装列名?我知道我可以将它们称为短名称,但它们已经尽可能短,但仍然是描述性的。

我想要类似的东西:

SELECT u.longcolumnname AS 'Long <br/> Column <br/> Name'

返回:

Long
Column
Name

这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

如果你想真的搞砸了,请查看SQL的BNF定义,例如 http://savage.net.au/SQL/sql-2003-2.bnf

选择列表是什么:

<select list> ::= <asterisk> | <select sublist> [ { <comma> <select sublist> }... ]
<select sublist> ::= <derived column> | <qualified asterisk>
<derived column list> ::= <column name list>
<column name list> ::= <column name> [ { <comma> <column name> }... ]
<column name> ::= <identifier>
<identifier> ::= <actual identifier>
<actual identifier> ::= <regular identifier> | <delimited identifier>
<regular identifier> ::= <identifier body>
<delimited identifier> ::= <double quote> <delimited identifier body> <double quote>
<delimited identifier body> ::= <delimited identifier part>... 
<delimited identifier part> ::= <nondoublequote character> | <doublequote symbol>
<nondoublequote character> ::= !! See the Syntax Rules.

Syntax rule 6: A <nondoublequote character> is any character of
the source language character set other than a <double quote>.

顺便说一句,你可以在选择中包含换行符/回车符,它可以正常工作。

从我的数据库

select startTime as "Start
Time"
 from queries;

当我从MySQL客户端复制该值(右键单击带有名称的复制行)时,我得到

# start
Time
'1392061991'

所以MySQL确实包含了回车。但是,MySQL客户端中显示的列名只有一行,它只显示&#34; start&#34;因为剩下的就在它之下了。