如果在使用sql concat和html标记时尝试将别名添加到列名,则会失败并显示错误。请在下面找到详细信息。
1)CountryDtls表
ID | CountryName | CityName |--- | ------------ || ---------- |1 |印度|孟买|2 |印度|钦奈|3 |印度|波普|4 |印度|印多尔|5 |澳大利亚|悉尼|6 | Aus |墨尔本|7 |美国|纽约|8 |美国|芝加哥|
2)工作查询
选择CONCAT(“”,GROUP_CONCAT(CONCAT(“”,CountryName,“”),CONCAT(“”,CityName,“”)),“”)AS html FROM CountryDtls;
3)结果
<div><span>India</span><br/><span>Mumbai</span>,<span>India</span><br/><span>Chennai</span>,<span>India</span><br/><span>Bhopal</span>,<span>India</span><br/><span>Indore</span>,<span>Aus</span><br/><span>Sydney</span>,<span>Aus</span><br/><span>Melbourne</span>,<span>USA</span><br/><span>NY</span>,<span>USA</span><br/><span>Chicago</span></div>
4)使用列名别名进行查询
选择CONCAT(“”,GROUP_CONCAT(CONCAT(“”,CountryName,“”),CONCAT(“”,(CityName AS City),“”)),“”)AS html FROM CountryDtls;
5)抛出错误
SQL错误[1064] [42000]:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获取在'AS City'附近使用的正确语法),“”)),“”)AS HTML FROM CountryDtls'在第5行com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获取在'AS City'附近使用的正确语法),“”)),“”)AS HTML FROM CountryDtls'在第5行
抱歉,您要达到什么目的?因为那里的别名没有意义。如果要使其成为html的一部分,则需要将其作为文本添加到concat中,例如:
CONCAT("",(CityName)," AS City")