>데이터 베이스 >MySQL 튜토리얼 >쉼표로 구분된 문자열을 MySQL 임시 테이블로 어떻게 분할할 수 있습니까?

쉼표로 구분된 문자열을 MySQL 임시 테이블로 어떻게 분할할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-07 09:34:11389검색

How Can I Split Comma-Separated Strings into a MySQL Temporary Table?

MySQL에서 쉼표로 구분된 문자열을 임시 테이블로 분할

MySQL을 사용하면 쉼표로 구분된 문자열을 직접 분할할 수 없습니다. 정규식을 사용하여 임시 테이블에 넣습니다. 이는 MySQL에 내장된 문자열 분할 기능이 없기 때문입니다.

해결 방법

직접 분할은 불가능하므로 다양한 해결 방법을 사용할 수 있습니다.

1. 사용자 정의 함수를 사용하여 분할

MySQL에서 사용자 정의 함수를 생성하여 문자열을 개별 값으로 분할할 수 있습니다. 예:

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, '');

2. 루프 사용

루프 내에서 사용자 정의 함수를 호출하고 빈 값이 반환될 때까지 위치를 증가시킵니다.

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;
      # Insert into temp table here with str going into the row
      insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$

3. 스크립팅 언어 통합

또는 PHP와 같은 스크립팅 언어를 활용하여 문자열을 분할하고 필요한 작업을 수행할 수 있습니다.

결론

MySQL에는 전용 문자열 분할 기능이 없지만 이러한 해결 방법을 사용하면 쉼표로 구분된 문자열을 임시 문자열로 효과적으로 구문 분석할 수 있습니다. 테이블. 귀하의 요구사항과 선호도에 가장 적합한 접근 방식을 선택하세요.

위 내용은 쉼표로 구분된 문자열을 MySQL 임시 테이블로 어떻게 분할할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.