sql >> Base de Datos >  >> RDS >> Mysql

usando CASE en la cláusula WHERE

No tienes que usar CASE...WHHEN, podrías usar una condición OR, como esta:

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

esto significa que si id<800, el éxito debe ser 1 para que la condición se evalúe como verdadera. De lo contrario, será cierto de todos modos.

Es menos común, sin embargo, aún podría usar CASE WHEN, así:

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

esto significa:volver success=1 (que puede ser VERDADERO o FALSO) en caso de id<800, o siempre devuelve VERDADERO en caso contrario.