Group_concat()不根据数据排序

时间:2015-03-11 13:54:43

标签: mysql sql sql-order-by dynamic-sql

排序数据是我想要的,我不会从这个声明的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/

1 个答案:

答案 0 :(得分:0)

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

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;