MySQL SUBSTRING_INDEX
이 가이드에서는 MySQL의 substring_index
기능의 개념을 이해합니다. 이러한 개념을 통해 사용자는 다양한 문자열의 배열에서 원하는 문자열을 가져올 수 있습니다.
이 기능을 살펴보고 이해해 봅시다.
MySQL의 SUBSTRING_INDEX
먼저 substring_index
기능을 작동하는 데 필수적인 몇 가지 중요한 개념을 이해하겠습니다. 이들은 즉 DELIMITER
및 CHARINDEX()
입니다.
‘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을 가짐)이 있습니다.
).
@Position
은 0
으로 설정하면 문자열의 시작 인덱스부터 구분 기호 지점까지 가져오기를 시작하고 1
로 설정하면 1
지점부터 가져오기를 시작하는 매개 변수입니다. 구분자 위치부터 문자열의 마지막까지.
Begin
절은 코드 블록의 시작을 나타내고 End
절은 코드 블록의 끝을 나타냅니다.
첫 번째 IF
조건에서 위치는 0
으로 설정됩니다. substring
함수에서 0
인덱스, Charindex()
함수에서 가져올 문자열을 얻었습니다.
이렇게 하면 0
인덱스에서 구분 기호 지점까지 하위 문자열이 반환됩니다.
예 1
다음 예를 통해 이를 이해하십시오.
SELECT dbo.SUB_STRING('ahsanali@email.com','@',0)
보시다시피 0
인덱스부터 구분 기호까지 하위 문자열을 반환했습니다.
두 번째 IF
조건은 위치를 1
로 설정합니다. 하위 문자열 함수에서 하위 문자열을 가져오는 +1
조건이 있는 Charindex()
함수를 얻었습니다. 이 하위 문자열은 구분 기호 앞의 1
인덱스이고 문자열의 마지막까지입니다.
예 2
다른 예를 통해 좀 더 이해해 봅시다.
SELECT dbo.SUB_STRING('ahsanali@email.com','@',1)
보시다시피 구분 기호 앞과 마지막 문자열까지 1
인덱스인 하위 문자열을 반환했습니다.
또한 또 다른 요점은 @위치(0 또는 1)
에 잘못된 값을 제공하면 완전한 문자열을 반환한다는 것입니다.
SELECT dbo.SUB_STRING('ahsanali@email.com','&',3)
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn