strSplit 함수를 사용하여 MySQL에서 문자열 분할
중복 스레드의 질문과 달리 이 질문은 쉼표로 구분된 문자열을 분할하는 방법을 구체적으로 묻습니다. 문자열 열을 여러 행으로 변환합니다. 이를 달성하기 위해 MySQL은 strSplit() 함수를 활용하는 다목적 저장 프로시저를 제공합니다.
strSplit() 함수는 지정된 구분 기호(delim)와 위치(pos)를 기반으로 주어진 문자열(x)을 분해합니다. . 구분된 문자열의 위치 pos에서 하위 문자열을 추출하고, 구분 기호를 빈 문자열로 바꾸고, 결과 하위 문자열을 반환함으로써 이를 수행합니다.
설명하기 위해 입력 테이블을 고려해 보겠습니다.
Col1 | Col2 |
---|---|
1 | a,b,c |
2 | d,e |
이를 원하는 출력으로 변환하려면:
Col1 | Col2 |
---|---|
1 | a |
1 | b |
1 | c |
2 | d |
2 | e |
BadTableToGoodTable() 저장 프로시저를 다음과 같이 정의합니다. 다음:
CREATE PROCEDURE BadTableToGoodTable() BEGIN DECLARE i INTEGER; SET i = 1; REPEAT INSERT INTO GoodTable (col1, col2) SELECT col1, strSplit(col2, ',', i) FROM BadTable WHERE strSplit(col2, ',', i) IS NOT NULL; SET i = i + 1; UNTIL ROW_COUNT() = 0 END REPEAT; END $$
여기서 REPEAT 문을 사용하여 Col2의 쉼표로 구분된 문자열의 각 문자를 반복하고 strSplit()을 사용하여 하위 문자열을 추출한 후 새 테이블(GoodTable)에 삽입합니다.
이러한 단계를 따르면 MySQL에서 문자열을 효과적으로 분할하여 쉼표로 구분된 열을 보다 정규화된 데이터로 재구성할 수 있습니다. 구조.
위 내용은 MySQL의 strSplit 함수는 어떻게 쉼표로 구분된 문자열을 여러 행으로 변환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!