sql >> Databáze >  >> RDS >> Mysql

find_in_set a find_in_set neočekávaný výsledek

Podmínka v WHERE doložka je:

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

což je ekvivalentní:

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

což znamená, že chcete vyloučit řádky, pro které:
host je součástí KnownHosts nebo user je součástí KnownUsers .

Pro vaše ukázková data tedy řádek:

unknownuser | 192.168.1.5

nebude vráceno, protože host = '192.168.1.5' a je součástí v KnownHosts (='192.168.1.5' ).

Možná změňte logický operátor na OR , pokud je to logika, kterou chcete použít:

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



  1. Oracle Převod sekund na hodiny:minuty:sekundy

  2. COPY s dynamickým názvem souboru

  3. Smazat řádky odpovídající podřetězci s LIKE?

  4. Jak auditovat odstranění v určité tabulce pomocí Oracle?