What is the difference between MySQL INSTR() and FIND_IN_SET() functions?


As we know, both the functions are used to search a string from the arguments provided in them but there are some significant differences between them as follows

  • FIND_IN_SET() function uses the string list that is itself a string containing the substring separated by commas. Whereas, INSTR() function contains a string from which it will find the position of the first occurrence of the substring if present.
  •  In case of integers, FIND_IN_SET() is much more suitable than INSTR() function. It can be understood by the following example

Example

mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.05 sec)

mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

From the result set of above examples, we can see that INSTR() function returns 1 even 2 as a string is not present in the arguments. But FIND_IN_SET() function returns 0 which is correct answer.

Lakshmi Srinivas
Lakshmi Srinivas

Programmer / Analyst / Technician

Updated on: 04-Feb-2020

275 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements