반응형
쉼표로 구분된 SQL(Maria DB) 문자열을 행으로 분할
다음과 같은 컬럼이 있습니다.
names
John, Mary
Joseph
Eleanor, Sophia, Dani
그리고 다음 출력을 원합니다.
names
John
Mary
Joseph
Eleanor
Sophia
Dani
또한 SUBSTRING_INDEX 함수도 포함해야 합니다.
재귀 CTE를 사용할 수 있습니다.
with recursive cte as (
select ' ' as name, concat(names, ',') as names, 1 as lev
from t
union all
select substring_index(names, ',', 1),
substr(names, instr(names, ',') + 2), lev + 1
from cte
where names like '%,%'
)
select name
from cte
where lev > 1;
여기 db<>fiddle이 있습니다.
다음 옵션 중 하나는 재귀 쿼리를 사용합니다.
with recursive
data as (select concat(names, ', ') names from mytable),
cte as (
select
substring(names, 1, locate(', ', names) - 1) word,
substring(names, locate(', ', names) + 2) names
from data
union all
select
substring(names, 1, locate(', ', names) - 1) word,
substring(names, locate(', ', names) + 2) names
from cte
where locate(', ', names) > 0
)
select word from cte
| word || :------ || 존 || 조셉 || 엘리너 || 메리 || 소피아 || 다니 |
언급URL : https://stackoverflow.com/questions/64454071/sql-maria-db-split-string-separated-by-comma-to-rows
반응형
'programing' 카테고리의 다른 글
도커 컨테이너에 스키마가 있는 MySQL 데이터베이스를 초기화하려면 어떻게 해야 합니까? (0) | 2023.01.03 |
---|---|
Python에서는 5(또는 다른 수)로 반올림 (0) | 2023.01.03 |
Axios를 사용하여 Vuex 스토어에서 데이터 검색 (0) | 2023.01.03 |
pip을 사용하여 모든 Python 패키지를 업그레이드하는 방법 (0) | 2023.01.03 |
노드의 문자열에서 스트림을 만드는 방법.Js? (0) | 2023.01.03 |