Group_concat() 没有按照数据排序

Group_concat() not sorting according to the data

排序的数据是我想要的,我不是从这个 order by 子句添加到这个声明中得到它。

SELECT
    GROUP_CONCAT(DISTINCT
        CONCAT(
            'COUNT((CASE WHEN (`ltd`.`total_pass_pc` =',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`'
        )
    )INTO @sql
    FROM log_tc_data
    ORDER BY `total_pass_pc`;

这个 group_concattotal_pass_pc 产生的结果是有序的 0 11.1111111 80 33.33333 .......未排序 我要排序 0 11.11111 33.333333 80......排序顺序

这是其结果的屏幕截图

http://postimg.org/image/yywctdpj3/7cc79088/

您需要定义一个 GROUP BY 子句,以便在选择数据时,记录将相对于该列名称进行分组。要对其进行排序,您可以在 GROUP_CONCAT 中使用 ORDER BY 试试这个:

SELECT
GROUP_CONCAT(DISTINCT CONCAT('COUNT((CASE WHEN (`ltd`.`total_pass_pc`=',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`')
  ORDER BY `total_pass_pc`)INTO @sql

FROM log_tc_data;