Mysql
 sql >> Database >  >> RDS >> Mysql

find_in_set e find_in_set risultato imprevisto

La condizione nel WHERE la clausola è:

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

che equivale a:

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

il che significa che vuoi escludere le righe per cui:
host è incluso in KnownHosts o user è incluso in KnownUsers .

Quindi, per i tuoi dati di esempio, la riga:

unknownuser | 192.168.1.5

non verrà restituito, perché host = '192.168.1.5' ed è incluso in KnownHosts (='192.168.1.5' ).

Forse cambia l'operatore logico in OR , se questa è la logica che vuoi applicare:

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