2017-04-06 3 views
1

이것이 가능했기 때문에 MySQL 기능에서 GROUP_CONCAT을 제한 할 수있는 옵션이 있습니까?PHP MySQL GROUP_CONCAT 제한

예컨대 : 나는이 심각하게 성능이 저하하기 때문에 하위 쿼리를 사용하지 않으

GROUP_CONCAT(ColName ORDER BY ColName DESC LIMIT 5) 

. 나중에 PHP에서 배열을 조각 낼 수는 있지만, MySQL에서 이미 이것을 달성 할 수있는 옵션이 있는지 궁금해하고있었습니다.

+1

* 하위 쿼리를 사용하고 싶지 않습니다. * - 어쨌든 하위 쿼리에'LIMIT'을 적용하려면 약간의 불만을 제기해야합니다. http://stackoverflow.com/questions/7124418/mysql- 하위 쿼리 제한 – CD001

+0

@ CD001, 덕분에 –

답변

9

아니,하지만 당신은이 작업을 수행 할 수 있습니다

SUBSTRING_INDEX(GROUP_CONCAT(ColName ORDER BY ColName DESC), ',', 5) 

당신은 중간 문자열이 1024 자보다 클 수 있습니다 경우, (group_concat_max_len 참조) 최대 길이 CONCAT 그룹에 관심을 지불 할 수 있습니다. 기본값을 변경할 수 있습니다.

+1

을 놓친 것 같습니다.) – Rams

+1

@Rams. . . 고맙습니다. –

+0

@GordonLinoff, 훌륭한 솔루션, 감사합니다. 내가 정수 5 개만 반환 할 것이기 때문에 1024가 충분히 클 것이다. –