Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi find_in_set fonctionne mais la clause IN

IN accepte une liste ou des paramètres à rechercher, FIND_IN_SET accepte un paramètre de chaîne contenant une liste séparée par des virgules :

SELECT  1 IN (1, 2, 3, 4)

SELECT  FIND_IN_SET(1, '1,2,3,4')

Si vous essayez d'appliquer IN à une chaîne séparée par des virgules, il le traitera comme un paramètre unique et le correspondra dans son ensemble :

SELECT  1 IN ('1,2,3,4')

Bien sûr, la chaîne '1' n'est pas égal à la chaîne '1,2,3,4' donc la requête ci-dessus renvoie false.