sql >> Databáze >  >> RDS >> Mysql

pomocí CASE v klauzuli WHERE

Nemusíte použít CASE...WHEN, můžete použít podmínku OR, jako je tato:

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

to znamená, že pokud id<800, úspěch musí být 1, aby byla podmínka vyhodnocena jako pravdivá. Jinak to bude stejně pravda.

Je to méně běžné, ale stále můžete použít CASE WHEN takto:

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

to znamená:return success=1 (což může být PRAVDA nebo NEPRAVDA) v případě id<800, nebo v opačném případě vždy vrátí hodnotu PRAVDA.



  1. Spuštění PostgreSQL pouze v paměti

  2. Jak funguje UTC_TIMESTAMP() v MariaDB

  3. Změňte uživatelsky definovaný typ v SQL Server

  4. konfigurace připojení k databázi v rámci Yii