IN
aceita uma lista ou parâmetros para pesquisar, FIND_IN_SET
aceita um parâmetro de string contendo uma lista separada por vírgulas:SELECT 1 IN (1, 2, 3, 4)
SELECT FIND_IN_SET(1, '1,2,3,4')
Se você tentar aplicar
IN
para uma string separada por vírgulas, ela a tratará como um único parâmetro e a corresponderá como um todo:SELECT 1 IN ('1,2,3,4')
Claro, a string
'1'
não é igual à string '1,2,3,4'
então a consulta acima retorna false.