LOCATE() Functions returns the position of the first instance of srchstring in string or the first instance after a given initial position in the string.
Returns 0 if srchstring is not in string. Returns NULL if any argument is NULL.
The first syntax is the same as the of INSTR(), except that the order of the arguments is opposite.
Note : This function is equal to the POSITION() function.
[table caption=”” width=”100%” colwidth=”15%|15%|15%|55%” colalign=”left|left|left|left”]
Name, Required /Optional,Type, Description
string, Required, String , It represents the valid input string.
srchstring, Required, String , It represents valid srchstring to be search for.
position, Optional, Numeric , It represents starting position to start searching in the string.
[/table]
[table caption=”” width=”100%” colwidth=”20%|80%” colalign=”left|left”]
Return, Description
Number, the position of the first instance of srchstring in string.
0, If srchstring is not found in the string.
NULL, if any argument is NULL.
[/table]
[table caption=”” width=”100%” colwidth=”25%|75%” colalign=”left|left”]
Version, MySQL 4.0
[/table]
Below is the example to show it.
mysql> SELECT LOCATE('mines','This is tutorialmines site for all!'); +-------------------------------------------------------+ | LOCATE('mines','This is tutorialmines site for all!') | +-------------------------------------------------------+ | 17 | +-------------------------------------------------------+ 1 row in set (0.00 sec)
Below is the example to show it. Ihave added start position to be 6. So, searching will start from this position.
mysql> SELECT LOCATE('site','This is tutorialmines site for all!',6); +--------------------------------------------------------+ | LOCATE('site','This is tutorialmines site for all!',6) | +--------------------------------------------------------+ | 23 | +--------------------------------------------------------+ 1 row in set (0.00 sec)
Below is the example to show it. I have added start position to be 26. So,searching will start from this position.’site’ is before 26 characters, and its not found in the input string.
mysql> SELECT LOCATE('site','This is tutorialmines site for all!',26); +---------------------------------------------------------+ | LOCATE('site','This is tutorialmines site for all!',26) | +---------------------------------------------------------+ | 0 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Below is the example where we will find ‘mines‘, in the word ‘tutorialmines‘ to show it.
mysql> SELECT LOCATE('mines','This is tutorialmines site for all!'); +-------------------------------------------------------+ | LOCATE('mines','This is tutorialmines site for all!') | +-------------------------------------------------------+ | 17 | +-------------------------------------------------------+ 1 row in set (0.00 sec)
If the srchstring isn’t found, 0 is returned:
mmysql> SELECT LOCATE('java','This is tutorialmines site for all!'); +------------------------------------------------------+ | LOCATE('java','This is tutorialmines site for all!') | +------------------------------------------------------+ | 0 | +------------------------------------------------------+ 1 row in set (0.00 sec)
This function is multibyte safe, and is case-sensitive only if at least one argument is a binary string.
That’s why the below works on nonbinary strings, even though the case doesn’t match:
mysql> SELECT LOCATE('Mines','tutorialmines!'); +----------------------------------+ | LOCATE('mines','tutorialmines!') | +----------------------------------+ | 9 | +----------------------------------+ 1 row in set (0.00 sec)
mysql> SET @strb = BINARY 'tutorialmines'; SELECT LOCATE('Mine', @strb) AS Output; Query OK, 0 rows affected (0.00 sec) +--------+ | Output | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
Below is the example, if we change the case, we get a match:
mysql> SET @str = BINARY 'tutorialmines'; SELECT LOCATE('mine', @str) AS Output; Query OK, 0 rows affected (0.00 sec) +--------+ | Output | +--------+ | 9 | +--------+ 1 row in set (0.00 sec)
If any of the arguments is NULL, it will return NULL. See below example
mysql> SELECT LOCATE('This is tutorialmines site for all!',NULL) as First, LOCATE(NULL,'mines') as Second, LOCATE('This is tutorialmines site for all!','mines',NULL) as Third; +-------+--------+-------+ | First | Second | Third | +-------+--------+-------+ | NULL | NULL | 0 | +-------+--------+-------+ 1 row in set (0.00 sec)
See all MySQL String functions MySQL 8 String Functions.
App usage is growing steadily without showing any signs of slowing down. Hence, it is no surprise that mobile applications…
As the world has grown more digital, businesses have adapted themselves. An effectual adaptation includes online advertising. Offline advertising styles…
Step into a world where apps dance to the user's tune. Picture Instagram, a photo-sharing sensation that swept the globe.…
COVID-19 has led to a digitalization of lifestyle. As patients are taking their mental and physical health more seriously, healthcare…
Introduction WordPress, an immensely popular content management system (CMS), powers over 40% of the internet. What makes WordPress even more…
For moving companies trying to capture their market share amidst stiff competition, a tip or two about what they can…