In the below query I want to add an AND condition inside the CASE\'s WHEN and before THEN is that possible?
for example WHEN \'r\' AND table1.name=\"jones\" THEN \'very
Anything that evaluates to a boolean (true or false) can go in the WHEN
condition of a CASE
statement. So you can replace 'r'
with:
('r' AND table1.name='jones')
Thinking about this more, you might have to lose the table1.event
after CASE
SELECT table1.id, table1.name,
CASE
WHEN (table1.event = 'r' AND table1.name='Jones') THEN 'very high'
WHEN table1.event = 't' THEN 'very low'
ELSE (SELECT table2.risk
FROM table2
WHERE table2.value <= table1.value
ORDER BY table2.value DESC LIMIT 1)
END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC