IN akzeptiert eine Liste oder zu durchsuchende Parameter, FIND_IN_SET akzeptiert einen String-Parameter, der eine durch Kommas getrennte Liste enthält:
SELECT 1 IN (1, 2, 3, 4)
SELECT FIND_IN_SET(1, '1,2,3,4')
Wenn Sie versuchen, IN anzuwenden in eine durch Kommas getrennte Zeichenfolge, wird sie als einzelner Parameter behandelt und als Ganzes abgeglichen:
SELECT 1 IN ('1,2,3,4')
Natürlich der String '1' ist nicht gleich der Zeichenfolge '1,2,3,4' Die obige Abfrage gibt also falsch zurück.