2017-05-17 2 views
0
내가 다음 쿼리는 한

같은 모든 값을 갖는 :MySQL의 GROUP_CONCAT

+------+-----------------+ 
| id | active_statuses | 
+------+-----------------+ 
| 2 | 0,1,1   | 
| 3 | 1,1    | 
| 6 | 1    | 
| 7 | 1,1,1   | 
| 12 | 0,0,1   | 
+------------------------+ 

어떻게 HAVING 절에 active_statuses 경우 모든 값이 1의 경우 확인할 수 있습니까? 이게 내가 찾은 charges을 줄 것입니다.

답변

3

조건 집합을 사용하여 각 그룹에 대해 1 상태가 아닌지 확인하는 HAVING 절을 시도하십시오.

SELECT 
    charges.id, 
    GROUP_CONCAT(bic.is_deactivated) AS active_statuses 
FROM charges 
LEFT JOIN billing_invoice_charges AS bic 
    ON bic.charge_id = charges.id 
GROUP BY charges.id 
HAVING SUM(CASE WHEN bic.is_deactivated <> 1 THEN 1 ELSE 0 END) = 0 
1

시도 : active_statuses을 가진`

+0

글쎄,이 또한 약간의 추가와 함께 나를 위해 일한 active_statuses에서 0 어떤 결과를 무시해야

SELECT charges.id, GROUP_CONCAT(bic.is_deactivated) AS active_statuses FROM charges LEFT JOIN billing_invoice_charges AS bic ON bic.charge_id = charges.id GROUP BY charges.id HAVING active_statuses NOT LIKE '%0%' 

이 싫어 '% 0 %' OR active_statuses는 NULL입니다. 그러나, 내 질문에 따라이 바로! – Abhi