Updated May 17, 2023
Definition of MySQL SUBSTRING_INDEX()
The substring_index() function outputs a substring from a source string before a definite number of occurrences of the delimiter. When a positive number is passed as a parameter, the function scans the string from the left-hand side until the delimiter is found, and the function scan from the right-hand side of the string if the passed parameter is negative.
If the specified number is 0, nothing will be fetched from the given string.
Syntax:
The substring_index() function contains three arguments string, delimiter, and N. They are discussed below.
Substring_index(source string, delimiter,N)
Where,
- String: string is the given string or the source string from which a substring is to be extracted or changes need to be done. The source string should be written in quotes (‘’).
- Delimiter: Delimiter is a string that acts as a separator. The substring function searches for a case-sensitive match. The delimiter should also be written in quotes(‘’). The delimiter can be a single character or a group of characters.
- N: N is an integer that states the number of occurrences of the delimiter. The integer N can be negative or positive. If n is positive, the function outputs every character of string from the left of the string till N number of occurrences of the delimiter. If N is negative, the function outputs every character of the string from right till N number of occurrences of the delimiter.
Examples of MySQL SUBSTRING_INDEX()
Following are the examples are given below:
Example #1
Code:
select substring_index('Tutorial class','r',1);
In the above example, the source string is “Tutorial class”, a delimiter is ‘r’ which acts as a separator, and the which is an integer acts as a counter variable is 1, which means it is searching for the first occurrence of ‘r’ in the given string. Therefore, the substring_index() function first scans the entire string from left since the number is positive and stops the scanning where the function will encounter its first ‘r’ and outputs the extracted string as substring as a result on the output console.
Output:
Example #2
Code:
select substring_index('Tutorial class','l',2);
Output:
Example #3
Code:
select substring_index('Tutorial class','a',1);
Output:
Demonstration of substring_index() function by passing a negative number as a parameter in the function. A negative number scans the string for the occurrence of the separator from the right-hand side.
Example #4
Code:
select substring_index('Tutorial class','a',-1);
Output:
Example #5
Code:
select substring_index('Tutorial class','a',-2);
Output:
In the above example, the source string is “Tutorial class”, the delimiter is ‘a’, which acts as a separator, and the N, which is an integer, acts as a counter variable is -2, which means it is searching for the first occurrence of ‘r’ in the given string. Therefore, the substring_index() function first scans the entire string from the right-hand side since the number is negative and stops the scanning where the function will encounter its second ‘a’ and outputs the extracted string as substring as a result on the output console.
Example #6
Code:
select substring_index('Tutorial class','s',-2);
Output:
Example #7
Code:
select substring_index('www.google.com','.',-2);
Output:
Note: If the passed number (N)as a parameter in the function is more than the number of occurrences of delimiter or the separator in the source string, the function will output the complete source string as a result.
Below query will explain the above case:
Example #8
Code:
select substring_index('www.google.com','.',3);
Output:
In the above example, since I have passed three as a parameter for the number(N) argument, which is more than the actual number of delimiter in the source string. Therefore the function outputs the complete source string as output in the output console.
Note: If 0 is passed in the function in the number parameter as an argument, nothing will be extracted from the given or the source string.
The below example will explain the above case properly:
Example #9
Code:
select substring_index('www.google.com','.',0);
Output:
Nothing will be displayed as 0 is passed in the number parameter.
Note: We can also pass more than one character as a delimiter in the function.
The below example will explain the concept of passing more than one character as a delimiter in the function.
Example #10
Code:
Select substring_index ('www.google.com','oo',1);
Output:
In the above example, the source string is “www.google.com”, a delimiter is ‘oo’ which acts as a separator which is a combination of characters, and the N, which is an integer, acts as a counter variable is 1, which means it is searching for the first occurrence of ‘oo’ together in the given string. Therefore, the substring_index() function first scans the entire string from the left-hand side since the number is positive and stops the scanning where the function will encounter its first ‘oo’ and outputs the extracted string as substring as a result on the output console.
Versions of MySQL that have substring_index function
Below mentioned mysql versions have substring_index() function:
MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Conclusion
This article taught us about the mysql substring_index() function. We have learned how the function works and returns a substring or a part of a string, either an entire string or a definite part. In this article, we have also learned about its parameters like number (N).
We have also learned about the negative and positive numbers and their working. We have tried to explain the function with examples. The article also contains screenshots of the outputs of each query on the output console that will give a clear picture to the reader.
Recommended Articles
We hope that this EDUCBA information on “MySQL SUBSTRING_INDEX()” was beneficial to you. You can view EDUCBA’s recommended articles for more information.