Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum find_in_set funktioniert, aber IN-Klausel

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.