2015-03-11 1 views
0

Отсортированные данные - это то, что я хочу, и я не получаю его из этого порядка, добавляя дополнение к этому утверждению.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,'`' 
     ) 
    )INTO @sql 
    FROM log_tc_data 
    ORDER BY `total_pass_pc`; 

результаты, что group_concat продукция для total_pass_pc в порядке 0 11,1111111 80 33,33333 ........ не отсортированных Я хочу, чтобы отсортировать его 0 11,11111 33,333333 80 ...... отсортировано заказ

вот снимок экрана своего результата

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

ответ

0

Вам нужно определить положение GROUP BY так, что при выборе данных в г ecords будут сгруппированы относительно этого имени столбца. И сортировать его можно использовать 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; 
+0

я не хочу Concat «заказ '» total_pass_pc' к моему SQL заявления я просто нужна строка для сортироваться, которые будут произведены из group_concat total_pass_pc –

+0

он находится внутри 'GROUP_CONCAT', а не' CONCAT'. – Beginner

+0

работал thanx :) –