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

mysqlの「WHERE」句の複数の「IN」式の評価

    このクエリは行を返します。ここで、b 5のいずれかです または7 、およびc 4です 。

    「ペアでの評価」とはどういう意味ですか?

    更新:

    サンプルにもう1行追加します:

     +----------+----------+----------+
     |    PK    |     b    |     c    |
     +----------+----------+----------+
     |     1    |     2    |     3    |
     +----------+----------+----------+
     |     2    |     5    |     4    |
     +----------+----------+----------+
     |     3    |     7    |     9    |
     +----------+----------+----------+
     |     4    |     7    |     4    |
     +----------+----------+----------+
     |     5    |     2    |     9    |
     +----------+----------+----------+
    

    セット全体を一致させたい場合は、次の構文を使用できます。

    SELECT  *
    FROM    table_name
    WHERE   (b, c) IN ((2, 3), (7, 9))
    

    これは、「bのすべての行を返す」という意味です。 2です およびc 3です 同時に、またはb 7です およびс 9です 同時に。」

    上記の例では、このクエリは行1を返します および3

    ただし、このクエリを逆に書き直すと、次のようになります。

    SELECT  *
    FROM    table_name
    WHERE   b IN (2, 7)
            AND c IN (3, 9)
    

    、これは「bのすべての行を返す」という意味になります 2のいずれかです または7 、およびc 3のいずれかです または9

    これにより、行1が返されます 、3 および5 、行5以降 2番目のクエリの条件を満たすが、最初のクエリの条件を満たす。



    1. あるサーバーから別のサーバーにテーブルを更新するにはどうすればよいですか?

    2. MySQLでゼロ除算を回避する方法

    3. COUNT()とDISTINCTを一緒に使用できますか?

    4. mysql selectを書き換えて時間を短縮し、tmpをディスクに書き込みます