Оставить строки в SQL по условию

Есть несколько условий where (допустим 10), и нужно оставить только те записи которые соответствуют по 5 и более параметрам. Кроме как перебора, никаких мыслей нет, можно ли как то решить этот вопрос?


Ответы (1 шт):

Автор решения: Mike

Любое условие (оператор =, например) в mysql возвращает 0 (если условие не сработало) или 1. Поэтому можно написать

... where ((a=1) + (b=2) + ... + (field10=X)) >= 5

В случае если в поле может быть NULL условия стоит писать в виде coalesce(a=1, 0)

→ Ссылка