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

WHERE句でCASEを使用する

    CASEを使用する必要はありません...この場合、次のようにOR条件を使用できます:

    WHERE
      pw='correct'
      AND (id>=800 OR success=1) 
      AND YEAR(timestamp)=2011
    

    これは、id <800の場合、条件がtrueと評価されるためには成功が1でなければならないことを意味します。そうでなければ、それはとにかく真実になります。

    あまり一般的ではありませんが、次のようにCASEWHENを使用することもできます。

    WHERE
      pw='correct'
      AND CASE WHEN id<800 THEN success=1 ELSE TRUE END 
      AND YEAR(timestamp)=2011
    

    つまり、success=1を返します。 (TRUEまたはFALSEの場合があります)id <800の場合、またはそれ以外の場合は常にTRUEを返します。



    1. SELECTINTOでのORDERBYの保持

    2. Javaコードを介してOracleSQLスクリプトを実行する方法

    3. max_allowed_pa​​cketを変更せずにmysqlDBに大きな値を挿入する方法はありますか?

    4. phpを使用してMySqlデータからこのjson配列を生成するためのより良い方法