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