sql >> Base de Datos >  >> RDS >> Mysql

find_in_set y find_in_set resultado inesperado

La condición en WHERE cláusula es:

NOT FIND_IN_SET(host, KnownHosts) AND NOT FIND_IN_SET(user, KnownUsers)

que es equivalente a:

NOT (FIND_IN_SET(host, KnownHosts) OR FIND_IN_SET(user, KnownUsers))

lo que significa que desea excluir las filas para las cuales:
host está incluido en KnownHosts o user está incluido en KnownUsers .

Entonces, para sus datos de muestra, la fila:

unknownuser | 192.168.1.5

no se devolverá porque host = '192.168.1.5' y está incluido en KnownHosts (='192.168.1.5' ).

Tal vez cambie el operador lógico a OR , si esta es la lógica que desea aplicar:

NOT FIND_IN_SET(host, KnownHosts) OR NOT FIND_IN_SET(user, KnownUsers)