How can I implement a WHERE clause that depends on one @value condition, like that pseudocode below:
Select * from table
WHERE
IF(@value is not null)
Id > 10 and Name = 'example' and Address is not null and ... etc
ELSE
Email is not null
Advertisement
Answer
As you’ve seen you can’t use an if like that, but you can create the desired behavior using the and and or logical operators:
SELECT *
FROM table
WHERE (@value IS NOT NULL AND
id > 10 AND
name = 'example' AND
address IS NOT NULL AND -- etc...) OR
(@value IS NULL AND email IS NOT NULL)