mam problem z zapytaniem z CASE bądź IF w WHERE

Mam zapytanie:
SELECT c.*, s.name AS sname, p.name AS pname FROM certificate c LEFT JOIN products p ON c.products_id = p.products_id LEFT JOIN STATUS s ON c.status_id = s.status_id WHERE p.name LIKE "%" AND c.filename LIKE "%" AND c.status_id LIKE "%" ORDER BY c.certificate_id DESC
Które działa jeśli c.products_id > 0 a gdy jest = 0 to tego rekordu nie wyświetla co jest logiczne ( bo szukam tak że po nazwie produtku (p.name)).
Pytanie jak to obejść ? Żeby rekordy z c.products_id również wyświetlał ?
Próbuję:
SELECT c.*, s.name AS sname, p.name AS pname FROM certificate c LEFT JOIN products p ON c.products_id = p.products_id LEFT JOIN STATUS s ON c.status_id = s.status_id WHERE CASE WHEN c.products_id > 0 THEN p.name LIKE "%" ELSE NULL END AND c.filename LIKE "%" AND c.status_id LIKE "%" ORDER BY c.certificate_id DESC
Jednak wyświetla tylko te z c.products_id > 0
