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.