【问题标题】:SQL query column alias name with concat does not work带有 concat 的 SQL 查询列别名不起作用
【发布时间】:2019-10-15 13:01:05
【问题描述】:

如果我在使用 sql concat 和 html 标签时尝试将别名添加到列名,则会失败并出现错误。请在下面找到详细信息。

1) CountryDtls 表

ID |CountryName |CityName | ---|------------|----------| 1 |印度|孟买| 家企业 2 |印度|钦奈| 家企业 3 |印度|博帕尔| 家企业 4 |印度|印多尔| 家企业 5 |澳大利亚|悉尼| 6 |澳大利亚 |墨尔本 | 7 |美国 |纽约 | 8 |美国|芝加哥| 家企业

2) 工作查询

选择 连接(“”, GROUP_CONCAT( CONCAT("",CountryName,"
"), CONCAT("",城市名,"") ) ,"") 作为来自 CountryDtls 的 html;

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) 使用列名别名查询

选择 连接(“”, GROUP_CONCAT( CONCAT("",CountryName,"
"), CONCAT("",(CityName AS City),"") ) ,"") 作为来自 CountryDtls 的 html;

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 行

【问题讨论】:

  • 为什么要在这个位置使用别名?
  • 考虑处理应用代码中数据显示的问题。
  • 什么版本的 MySQL?

标签: mysql sql alias concat


【解决方案1】:

抱歉,您想达到什么目的?因为那里的别名没有意义。如果您希望它成为 html 的一部分,则需要将其作为文本添加到 concat 中,例如:

CONCAT("",(CityName)," AS City")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多