programing

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

prostudy 2022. 10. 13. 23:26
반응형

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;

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"

첫 번째로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;

그룹내의 값의 디폴트 구분은, 쉼표()입니다.다른 구분 기호를 지정하려면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를 참조하십시오.

mysql에서 메서드 사용

SQL Server에서 작업하는 사용자: 사용STRING_AGG비슷한 결과를 얻기 위해.

GROUP_CONCAT를 사용하여 유연성을 높이는 다른 방법을 다음에 제시하겠습니다.

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

그러면 다음과 같은 값이 반환됩니다.

"181","187","193","199","205","211","217","223","229","235","239","243","247","251"

다른 구분 기호를 사용하여 참조할 수 있습니다.이것은 반환값을 직접 사용하고 싶은 경우에 도움이 됩니다.

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

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

반응형