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

mysqlクエリで1つ以上のORとANDを使用する方法

    優先順位 があります 論理演算子を使用します。疑わしい場合は、括弧を使用してください。

    あなたの場合:

    SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
    

    ANDのため、元のクエリは次のように解釈されました。 優先順位が高くなります。

    SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
    

    更新

    ロケットのコメントによる 、ORを要約できます INへのステートメント 同じフィールドで動作するためです。そうすることで、括弧が不要になります。

    SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
    

    それでも、必然的に複数の条件でクエリを作成するため、2つの元のクエリの違いを理解することが重要です。



    1. Postgresql:エスケープされた改行を含むCSVエクスポート

    2. SQLServerサービスブローカー

    3. OracleのNLS_CHARSET_NAME()関数

    4. nullでない場合にのみ列を表示する