MySQL | INSTR method
Start your free 7-days trial now!
MySQL's INSTR(~)
method returns the position of the first occurrence of a substring in the input string.
Parameters
1. str
| string
The input string we are trying to locate the substring in.
2. substr
| string
The substring we are trying to find in str
.
Return value
Case | Return value |
---|---|
If the | Position of first occurrence of |
If the | 0 |
Examples
Consider the following table about some students:
student_id | fname | lname | day_enrolled | age | username |
---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
Basic usage
To find position of first occurrence of 'd'
in usernames:
SELECT username, INSTR(username, 'd') AS 'Position of d'FROM students;
+----------+---------------+| username | Position of d |+----------+---------------+| stowner1 | 0 || bdavis2 | 2 || tapple3 | 0 || adavid4 | 2 || btown5 | 0 |+----------+---------------+
Note that counting of position starts at 1 in MySQL unlike some other programming languages that start at 0.
The method is NOT case-sensitive:
SELECT username, INSTR(username, 'D') AS 'Position of D'FROM students;
+----------+---------------+| username | Position of D |+----------+---------------+| stowner1 | 0 || bdavis2 | 2 || tapple3 | 0 || adavid4 | 2 || btown5 | 0 |+----------+---------------+
Even when using 'D'
(capital letter) as our substring, we still find matches in usernames bdavis
and adavid4
.