sql >> Databasteknik >  >> RDS >> Mysql

find_in_set och find_in_set oväntat resultat

Villkoret i WHERE klausul är:

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

vilket motsvarar:

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

vilket betyder att du vill utesluta raderna för vilka:
host ingår i KnownHosts eller user ingår i KnownUsers .

Så för dina exempeldata, raden:

unknownuser | 192.168.1.5

kommer inte att returneras eftersom host = '192.168.1.5' och det ingår i KnownHosts (='192.168.1.5' ).

Ändra kanske den logiska operatorn till OR , om detta är logiken som du vill tillämpa:

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



  1. Bästa sättet att lägga till poster i DB med php/ajax/mysql?

  2. Konfigurera en optimal miljö för PostgreSQL

  3. django.db.utils.ProgrammingError:relation finns redan

  4. hur ersätter den accentuerade bokstaven i en varchar2-kolumn i Oracle