Один из способов сделать это - посчитать 1 для каждого условия, которому удовлетворяет строка, и сравнить сумму с целевым значением:
SELECT *
FROM yourtable
WHERE (
(CASE WHEN condition1 THEN 1 ELSE 0 END) +
(CASE WHEN condition2 THEN 1 ELSE 0 END) +
...
(CASE WHEN condition7 THEN 1 ELSE 0 END)
) >= 4
Обратите внимание, что для этого потребуется оценить все условия для каждой строки, чтобы не было эффекта короткого замыкания, но он прост и, возможно, имеет достаточно хорошую производительность для вас.
Если вы используете MySQL, вы можете написать это гораздо проще, потому что логический результат эквивалентен 0 или 1, поэтому вам не нужны операторы CASE:
WHERE (condition1) + (condition2) + ... + (condition7) >= 4