Mysql
 sql >> Base de données >  >> RDS >> Mysql

en utilisant CASE dans la clause WHERE

Vous n'êtes pas obligé d'utiliser CASE...WHEN, vous pouvez utiliser une condition OR, comme ceci :

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

cela signifie que si id<800, le succès doit être 1 pour que la condition soit évaluée comme vraie. Sinon, ce sera vrai de toute façon.

C'est moins courant, mais vous pouvez toujours utiliser CASE WHEN, comme ceci :

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

cela signifie :renvoie success=1 (qui peut être TRUE ou FALSE) dans le cas id<800, ou retourne toujours TRUE sinon.