Mysql
 sql >> Baza danych >  >> RDS >> Mysql

find_in_set i find_in_set nieoczekiwany wynik

Warunek w WHERE klauzula to:

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

co jest równoznaczne z:

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

co oznacza, że ​​chcesz wykluczyć wiersze, dla których:
host jest zawarty w KnownHosts lub user jest zawarty w KnownUsers .

Tak więc dla przykładowych danych wiersz:

unknownuser | 192.168.1.5

nie zostanie zwrócony, ponieważ host = '192.168.1.5' i jest zawarty w KnownHosts (='192.168.1.5' ).

Może zmienić operator logiczny na OR , jeśli taką logikę chcesz zastosować:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie PHP/MySQL do obliczania procentów

  2. Jak zmienić NAZWA UŻYTKOWNIKA i HASŁO MySQL?

  3. Nierozwiązany symbol:sql::mysql::get_driver_instance(void)

  4. Jak zwrócić 0 z bazy danych MySQL, gdy termin w klauzuli Where nie znajduje się w bazie danych?

  5. Czy istnieje odpowiednik SHA1() w MS-SQL?