> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 strSplit 함수는 어떻게 쉼표로 구분된 문자열을 여러 행으로 변환할 수 있습니까?

MySQL의 strSplit 함수는 어떻게 쉼표로 구분된 문자열을 여러 행으로 변환할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-06 15:39:11
원래의
632명이 탐색했습니다.

How Can MySQL's strSplit Function Transform Comma-Separated Strings into Multiple Rows?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿