MySQL Tutorial MySQL Advanced MySQL Database Account Management MySQL References

MySQL LOCATE() Function



The MySQL LOCATE() function returns the location of the first occurrence of a specified substring in a given string. If the substring is not found within the given string, this function returns 0.

This function performs a case-insensitive search. Note that the first position in string starts with 1.

The LOCATE() function is a synonym for the POSITION() function.

Syntax

LOCATE(substring, string, start_position)

Parameters

substring Required. Specify the substring to search for in string.
string Required. Specify the string to search.
start_position Optional. Specify the starting position for the search. Default is position 1.

Return Value

Returns the location of the first occurrence of the substring in the string.

Example 1:

The example below shows the usage of LOCATE() function.

mysql> SELECT LOCATE('A', 'AlphaCodingSkills.com');
Result: 1

mysql> SELECT LOCATE('Coding', 'AlphaCodingSkills.com');
Result: 6

mysql> SELECT LOCATE('.com', 'AlphaCodingSkills.com');
Result: 18

mysql> SELECT LOCATE('l', 'AlphaCodingSkills.com');
Result: 2

mysql> SELECT LOCATE('l', 'AlphaCodingSkills.com', 5);
Result: 15

mysql> SELECT LOCATE('Z', 'AlphaCodingSkills.com');
Result: 0

mysql> SELECT LOCATE('ABC', 'AlphaCodingSkills.com');
Result: 0

Example 2:

Consider a database table called Employee with the following records:

PhoneNumberEmpIDAddress
+1-80540980001Brooklyn, New York, USA
+33-1479961012Grenelle, Paris, France
+31-2011503193Geuzenveld, Amsterdam, Netherlands
+86-10997324584Yizhuangzhen, Beijing, China
+65-672348245Yishun, Singapore
+81-3577990726Koto City, Tokyo, Japan

In the query below, the LOCATE() function is used to extract the country code from the PhoneNumber column records.

SELECT *, SUBSTR(PhoneNumber, 1, LOCATE('-', PhoneNumber) - 1) AS CountryCode 
FROM Employee;

This will produce the result as shown below:

PhoneNumberEmpIDAddressCountryCode
+1-80540980001Brooklyn, New York, USA+1
+33-1479961012Grenelle, Paris, France+33
+31-2011503193Geuzenveld, Amsterdam, Netherlands+31
+86-10997324584Yizhuangzhen, Beijing, China+86
+65-672348245Yishun, Singapore+65
+81-3577990726Koto City, Tokyo, Japan+81

❮ MySQL Functions