В MySQL можно использовать операторы IF и CASE для выполнения выборки данных на основе произвольного набора столбцов.
Например, можно использовать оператор IF для проверки значения каждого столбца и фильтрации соответствующих строк. Вот пример:
```sql
SELECT *
FROM your_table
WHERE IF(column1 = 0, 1, column1) = column1
AND IF(column2 = 0, 1, column2) = column2
AND IF(column3 = 0, 1, column3) = column3
...
```
В этом примере мы проверяем каждое значение столбца. Если значение столбца равно 0, то вместо него используется значение 1 (которое не влияет на результат выборки). В противном случае, если значение столбца не равно 0, то используется его собственное значение. Затем мы сравниваем полученное значение со значением столбца, чтобы выполнить фильтрацию.
Можно использовать аналогичный подход с оператором CASE. Вот пример:
```sql
SELECT *
FROM your_table
WHERE CASE
WHEN column1 = 0 THEN 1
ELSE column1
END = column1
AND CASE
WHEN column2 = 0 THEN 1
ELSE column2
END = column2
AND CASE
WHEN column3 = 0 THEN 1
ELSE column3
END = column3
...
```
Оба этих подхода могут быть использованы для фильтрации выборки данных на основе произвольного набора столбцов, указанных с фронтенда.