Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que find_in_set funciona, mas a cláusula IN


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.