Псевдоним столбца SQL-запроса с concat не работает - PullRequest
0 голосов
/ 15 октября 2019

Если я попытаюсь добавить псевдоним к имени столбца при использовании sql concat вместе с HTML-тегами, произойдет сбой с ошибкой. Пожалуйста, найдите ниже детали.

1) Таблица CountryDtls

Id |CountryName |CityName  |
---|------------|----------|
1  |India       |Mumbai    |
2  |India       |Chennai   |
3  |India       |Bhopal    |
4  |India       |Indore    |
5  |Aus         |Sydney    |
6  |Aus         |Melbourne |
7  |USA         |NY        |
8  |USA         |Chicago   |

2) Рабочий запрос

SELECT 
      CONCAT("",
           GROUP_CONCAT(
                CONCAT("",CountryName,"<br/>"),
                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) Запрос с именем столбцапсевдоним

SELECT 
      CONCAT("",
           GROUP_CONCAT(
                CONCAT("",CountryName,"<br/>"),
                CONCAT("",(CityName AS City),"")
           )
      ,"") AS html FROM CountryDtls;

5) Ошибка отброшена

SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS City),"")
           )
      ,"") AS html FROM CountryDtls' at line 5
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS City),"")
           )
      ,"") AS html FROM CountryDtls' at line 5

1 Ответ

0 голосов
/ 15 октября 2019

извините, но чего вы пытаетесь достичь? Потому что этот псевдоним там не имеет смысла. Если вы хотите, чтобы он был частью вашего html, вам нужно добавить его в конкат в виде текста, например:

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

...