sql >> データベース >  >> RDS >> Mysql

find_in_setおよびfind_in_setの予期しない結果

    WHEREの条件 条項は次のとおりです:

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

    これは次と同等です:

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

    つまり、除外したいということです 次の行:
    host KnownHostsに含まれています またはuser KnownUsersに含まれています 。

    したがって、サンプルデータの場合、次の行:

    unknownuser | 192.168.1.5
    

    host = '192.168.1.5'であるため、返されません そしてそれは含まれています KnownHostsで (='192.168.1.5' )。

    論理演算子をORに変更するかもしれません 、これが適用するロジックである場合:

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



    1. SqlDataReaderのパフォーマンスが遅い

    2. 3つのキーを持つ複合インデックス、真ん中のキーをスキップしてクエリを実行するとどうなりますか?

    3. JavaMySQLとArrayListsの統合

    4. 配列のキーと値を使用してSQLSelectステートメントを作成する