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

find_in_set og find_in_set uventet resultat

Betingelsen i WHERE klausul er:

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

hvilket svarer til:

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

hvilket betyder, at du vil udelukke de rækker, for hvilke:
host er inkluderet i KnownHosts eller user er inkluderet i KnownUsers .

Så for dine eksempeldata, rækken:

unknownuser | 192.168.1.5

vil ikke blive returneret, fordi host = '192.168.1.5' og det er inkluderet i KnownHosts (='192.168.1.5' ).

Måske ændre den logiske operator til OR , hvis dette er den logik, du vil anvende:

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



  1. Udfyldning af nuller til venstre i postgreSQL

  2. Hvordan får man forskel mellem to rækker til et kolonnefelt?

  3. PostgreSQL for at finde midtpunktet mellem to tidsstempler

  4. GROUP BY + CASE erklæring