How do I check three conditions on a select with one query?
You can use Conditional ORDER BY and then use LIMIT 1 to restrict result-set to one row. This approach depends on a MySQL feature where it implicitly typecasts the result of a conditional expression, i.e., boolean to int (0/1)

SELECT * FROM emails 
WHERE primary_key=? 
ORDER BY 
  user_id = ? DESC,  -- if user_id matches, it will be 1 and come first 
  client_id = ? DESC 
  -- does not matter if user_id matches, 
  -- but if it does not, then client_id matches will come first
LIMIT 1