Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

usando CASE na cláusula WHERE


Você não precisa usar CASE...WHEN, você pode usar uma condição OR, assim:
WHERE
  pw='correct'
  AND (id>=800 OR success=1) 
  AND YEAR(timestamp)=2011

isso significa que se id<800, o sucesso deve ser 1 para que a condição seja avaliada como verdadeira. Caso contrário, será verdade de qualquer maneira.

É menos comum, mas você ainda pode usar CASE WHEN, assim:
WHERE
  pw='correct'
  AND CASE WHEN id<800 THEN success=1 ELSE TRUE END 
  AND YEAR(timestamp)=2011

isso significa:retornar success=1 (que pode ser TRUE ou FALSE) caso id<800, ou sempre retornar TRUE caso contrário.