HOWTO · MySQL

MySQL SUBSTRING_INDEX

이 가이드에서는 MySQL에서 substring_index 함수의 개념을 이해합니다.

이 가이드에서는 MySQL의 substring_index 기능의 개념을 이해합니다. 이러한 개념을 통해 사용자는 다양한 문자열의 배열에서 원하는 문자열을 가져올 수 있습니다.

이 기능을 살펴보고 이해해 봅시다.

MySQL의 SUBSTRING_INDEX

먼저 substring_index 기능을 작동하는 데 필수적인 몇 가지 중요한 개념을 이해하겠습니다. 이들은 즉 DELIMITERCHARINDEX()입니다.

‘Delimiter’는 문자열을 끊고자 하는 주요 지점 역할을 하는 복합 기호입니다. 문자열은 해당 지점에서 끊어지고 가져오는 문자열은 입력에 따라 해당 지점 앞 또는 이전에서 가져옵니다.

Charindex()는 문자열에서 특정 부분 문자열의 위치를 가져오고 그 위치를 반환하고자 할 때 사용되는 MySQL의 함수입니다. 해당 매개변수에는 (하위 문자열, 문자열)이 포함됩니다.

하위 문자열 함수 코드

다음 코드는 Substring_index 기능의 작동을 보여줍니다. 이 코드는 MySQL의 substring_index 기능에 해당하는 SQL Server입니다.

다음 코드는 SQL Server에서 실행되어야 합니다.

CREATE FUNCTION SUB_STRING
(
@STRING VARCHAR(8000),
@DELIMITER VARCHAR(1),
@POSITION INT
)
RETURNS VARCHAR(8000)
AS
BEGIN
IF @POSITION = 0
BEGIN
	RETURN SUBSTRING(@STRING,0,CHARINDEX(@DELIMITER,@STRING))
END
IF @POSITION = 1
BEGIN
	RETURN SUBSTRING(@STRING,CHARINDEX(@DELIMITER,@STRING)+1,LEN(@STRING))
END
RETURN @STRING
END;

코드를 이해합시다.

SUB_STRING이라는 함수를 만들었고 이 함수 내부에는 @string(하위 문자열을 가져올 문자열), @delimiter@position(두 개의 값 0 또는 1을 가짐)이 있습니다. ).

@Position0으로 설정하면 문자열의 시작 인덱스부터 구분 기호 지점까지 가져오기를 시작하고 1로 설정하면 1 지점부터 가져오기를 시작하는 매개 변수입니다. 구분자 위치부터 문자열의 마지막까지.

Begin 절은 코드 블록의 시작을 나타내고 End 절은 코드 블록의 끝을 나타냅니다.

첫 번째 IF 조건에서 위치는 0으로 설정됩니다. substring 함수에서 0 인덱스, Charindex() 함수에서 가져올 문자열을 얻었습니다.

이렇게 하면 0 인덱스에서 구분 기호 지점까지 하위 문자열이 반환됩니다.

예 1

다음 예를 통해 이를 이해하십시오.

SELECT dbo.SUB_STRING('ahsanali@email.com','@',0)

하위 문자열 0

보시다시피 0 인덱스부터 구분 기호까지 하위 문자열을 반환했습니다.

두 번째 IF 조건은 위치를 1로 설정합니다. 하위 문자열 함수에서 하위 문자열을 가져오는 +1 조건이 있는 Charindex() 함수를 얻었습니다. 이 하위 문자열은 구분 기호 앞의 1 인덱스이고 문자열의 마지막까지입니다.

예 2

다른 예를 통해 좀 더 이해해 봅시다.

SELECT dbo.SUB_STRING('ahsanali@email.com','@',1)

하위 문자열 1

보시다시피 구분 기호 앞과 마지막 문자열까지 1 인덱스인 하위 문자열을 반환했습니다.

또한 또 다른 요점은 @위치(0 또는 1)에 잘못된 값을 제공하면 완전한 문자열을 반환한다는 것입니다.

SELECT dbo.SUB_STRING('ahsanali@email.com','&',3)

잘못된 값