【问题标题】:Group_concat with added columnsGroup_concat 添加了列
【发布时间】:2017-07-31 16:56:48
【问题描述】:

我得到了一个运行良好的查询:

SELECT Course, Period, Room, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
FROM cursosv2 
GROUP BY Course, Period, Room, Location, TeacherID;

我想要的(可能太基本了)是在生成的查询中拥有一个新列,例如 NEW COLUMN A,其连接值为 period+room+'final'。但我不断收到异常。不知道真正的原因。

我在尝试什么...

SELECT Course, Period, Room, Period+' '+Room+' Final' as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
FROM cursosv2 
GROUP BY Course, Period, Room, Location, TeacherID;

谢谢。

【问题讨论】:

    标签: mysql group-by group-concat


    【解决方案1】:

    您还应该使用 concat 进行字符串连接(不是 + )并添加到 group by

     SELECT Course, Period, Room, concat( Period,' ',Room,' Final') as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
    
     FROM cursosv2 
     GROUP BY Course, Period, test, Room, Location, TeacherID;
    

    【讨论】:

      【解决方案2】:

      使用concat 代替+ 连接。并将test 添加到group by 子句中:

      SELECT Course, Period, Room, concat(Period,' ',Room,' Final') as test, 
             Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
      FROM cursosv2 
      GROUP BY Course, Period, Room, test, Location, TeacherID;
      

      【讨论】:

        【解决方案3】:

        您可以使用 CONCAT_WS 来实现。

        (' ', Column1, column2) AS column_name

        SELECT Course, Period, Room, concat_ws(' ', Room, Period) AS roomperiod, Location, TeacherId, GROUP_CONCAT(StudentId) as Students FROM cursosv2 GROUP BY Course, Period, Room, Location, TeacherID;
        

        https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_concat-ws

        【讨论】:

        • 分隔符应该是空格。
        猜你喜欢
        • 1970-01-01
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 2014-06-01
        • 2015-11-16
        • 1970-01-01
        相关资源
        最近更新 更多