Nice programing

mysql에서 선택한 값의 쉼표로 구분 된 문자열

nicepro 2020. 11. 19. 22:00
반응형

mysql에서 선택한 값의 쉼표로 구분 된 문자열


MySQL에서 선택한 값을 쉼표로 구분 된 문자열로 변환하고 싶습니다. 내 초기 코드는 다음과 같습니다.

SELECT id FROM table_level where parent_id=4;

생산 :

'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'

내 원하는 출력은 다음과 같습니다.

"5,6,9,10,12,14,15,17,18,779"

이것을 확인하십시오

SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

parent_id에 대한 여러 행이있는 경우.

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

공백을 쉼표로 바꾸려면.

SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;

먼저 set group_concat_max_len, 그렇지 않으면 모든 결과를 제공하지 않습니다.

SET GLOBAL  group_concat_max_len = 999999;
SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

mysql의 group_concat () 함수를 사용하십시오 .

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

다음과 같이 연결된 문자열을 제공합니다.

5,6,9,10,12,14,15,17,18,779 

이 시도

SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level 
where parent_id=4 group by parent_id;

결과는

 "5,6,9,10,12,14,15,17,18,779"

group_concatmysql에서 사용 방법


그룹에서 값 사이의 기본 구분 기호는 쉼표 (,)입니다. 다른 구분 기호를 지정하려면 SEPARATOR아래와 같이 사용하십시오 .

SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

5 | 6 | 9 | 10 | 12 | 14 | 15 | 17 | 18 | 779

구분 기호를 제거하려면 다음을 사용하십시오. SEPARATOR ''

SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

자세한 정보는 GROUP_CONCAT 참조

참고URL : https://stackoverflow.com/questions/19558443/comma-separated-string-of-selected-values-in-mysql

반응형