Difference between FIND_IN_SET and LIKE Is there a difference in behavior or performance in choosing FIND_IN_SET over LIKE for a operation that looks like:

SELECT * FROM my_table WHERE column_1 LIKE '%string%';


vs 

SELECT * FROM my_table WHERE FIND_IN_SET('string', column_1) &gt; 0;


This is done on Percona Server.
I would use LIKE for one very good reason. From the documentation here - "This function (FIND_IN_SET) does not work properly if the first argument contains a comma (“,”) character".

You could always use an EXPLAIN  to check on performance - but simply for the reason above, I would not use it.

[EDIT]

You could always use LOCATE(). I strongly recommend that you don't use MySQL's SET datatype. It's non-standard and illogical to say the least.