> 데이터 베이스 > MySQL 튜토리얼 > 정규식을 사용하여 쉼표로 구분된 문자열을 MySQL 임시 테이블로 분할하는 방법은 무엇입니까?

정규식을 사용하여 쉼표로 구분된 문자열을 MySQL 임시 테이블로 분할하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-19 21:38:13
원래의
119명이 탐색했습니다.

How to Split a Comma-Separated String into a MySQL Temp Table Using Regular Expressions?

MySQL은 RegEx를 사용하여 쉼표로 구분된 문자열을 임시 테이블로 분할합니다.

MySQL에는 전용 문자열 분할 기능이 부족하므로 대체 접근 방식이 필요합니다. 한 가지 방법은 사용자 정의 함수를 반복하여 분할을 에뮬레이션하는 것입니다.

사용자 정의 분할 함수

다음 함수는 pos 위치에서 구분 기호로 구분된 문자열 x를 분할합니다.

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');
로그인 후 복사

Temp에 반복 및 삽입 테이블

분할 문자열을 반복하고 임시 테이블에 삽입하려면 LOOP 문을 사용하세요.

DELIMITER $$

CREATE PROCEDURE ABC(fullstr)

   BEGIN
      DECLARE a INT Default 0 ;
      DECLARE str VARCHAR(255);
      simple_loop: LOOP
         SET a=a+1;
         SET str=SPLIT_STR(fullstr,"|",a);
         IF str='' THEN
            LEAVE simple_loop;
         END IF;
         #Do Inserts into temp table here with str going into the row
         insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$
로그인 후 복사

참고: 다음과 같은 스크립트 언어를 사용하세요. 이러한 작업에는 PHP만 사용하는 것이 MySQL에만 의존하는 것보다 더 효율적일 수 있습니다.

위 내용은 정규식을 사용하여 쉼표로 구분된 문자열을 MySQL 임시 테이블로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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