Mysql
 sql >> Database >  >> RDS >> Mysql

utilizzando CASE nella clausola WHERE

Non è necessario utilizzare CASE... QUANDO, è possibile utilizzare una condizione OR, come questa:

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

ciò significa che se id<800, il successo deve essere 1 affinché la condizione sia valutata come vera. Altrimenti, sarà comunque vero.

È meno comune, tuttavia puoi comunque utilizzare CASE WHEN, in questo modo:

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

questo significa:restituisce success=1 (che può essere VERO o FALSO) nel caso id<800, o restituisca sempre VERO in caso contrario.