Best practice for MySQL CASE with multiple WHEN conditions vs a single OR condition Is there a preferred (or more performant) way of writing a CASE with multiple WHEN conditions that generate the same value?
For example:
SELECT 
  CASE
    WHEN 1 &gt; 0 AND 2 &gt; 0 THEN 1
    WHEN 0 &lt; 1 AND 0 &lt; 2 THEN 1
    ELSE 0
  END AS multiple_WHEN,
  CASE
    WHEN (1 &gt; 0 AND 2 &gt; 0) OR (0 &lt; 1 AND 0 &lt; 2) THEN 1
    ELSE 0
  END AS single_OR

Would the remainder of the WHEN conditions need to be evaluated before reaching the end of the CASE, and would an OR condition act any differently?
The performance difference between the two suggestions is insignificant.
As a rule of thumb, fetching a row is far more costly than any expressions that need to be evaluated for that row.
Do whichever is easier for you.
The expressions in those examples will be evaluated before it starts to perform the query.  Perhaps your real query is more involved than that?  In particular, if 2 &gt; 0 is, instead, some complex subquery, then I need to reconsider my answer.
These may apply to MySQL:

&quot;short circuit&quot; -- But for simple expressions, you would be hard put to measure the performance difference.
When possible MATCH .. AGAINST (FULLTEXT) is performed first.  (But this applies to WHERE, not CASE.)
User functions can be defined as DETERMINISTIC or non.  This should impact the evaluation.  (But I don't have proof of such.)
@variables are probably soon to be deprecated due to evaluation issues.