2012-01-25 2 views
0

끝에 '기타'와 함께 var_name 열이 필요하므로 이것을 시도했습니다. 그것은 작동하지만 퍼크로 첫 번째 select 문을 주문해야합니다. UNION은 나를 허용하지 않을 것입니다. 어쨌든 아마도 UNION을 사용하는 것이 틀림 없습니다. MySQL은 조건이 거짓 0과 1로 진실을 반환하기 때문에예외에 의한 MySQL의 순서

SELECT count(*) as cnt,(count(*)/$cty)*100 AS perc, var_name 
FROM tbl_answers 
WHERE int_question = $id_question AND var_response <> '' 
AND var_name <> 'comments' AND var_name <> 'Other' 
GROUP BY var_name 
UNION 
SELECT count(*) AS cnt,(count(*)/$cty)*100 as perc,var_name 
FROM tbl_answers 
WHERE int_question = $id_question 
AND var_response <> '' AND var_name <> 'comments' AND var_name = 'Other' 
GROUP BY var_name 

답변

1

당신은 = '기타'

을 '기타'var_name 반에>는 var_name 반 <에서 오름차순으로 정렬합니다 구문

SELECT ....... ORDER BY (var_name = 'Other'), perc 

을 사용할 수 있습니다

+0

예를 들어 설명해 주셔서 감사합니다. – user1083382

0
SELECT count(*) as cnt, (count(*)/$cty)*100 AS perc, var_name 
FROM tbl_answers 
WHERE int_question = $id_question 
AND var_response <> '' 
AND var_name <> 'comments' 
GROUP BY var_name 
ORDER BY (var_name = 'Other') 
     , perc 
0

이 작업을 수행하기 위해 노동 조합을 사용하지 마십시오, 단지에 의해 정기적으로 MySQL의 ORDER를 사용

SELECT count(*) as cnt, (count(*)/$cty)*100 AS perc, var_name 
FROM tbl_answers 
WHERE int_question = $id_question and var_response <> '' AND var_name <> 'comments' 
GROUP BY var_name 
ORDER BY var_name = 'Other'