demon416nds
@demon416nds
Разработчик на чем попало

Возможно использовать wildcard при выборке по числовому столбцу?

есть таблица с несколькими integer столбцами, нужно организовать выборку по произвольному набору столбцов, но с фронтенда всегда приходит полный список, в котором для столбцов которые не нужно фильтровать указан 0,
сейчас это работает через составление запроса в php но хотелось бы чтобы обработка происходила в самом mysql.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WHERE :value = 0 OR `column` = :value
Но OR далеко не самый эффективный способ работы в MySQL. Лучше формировать запрос, добавляя в него только нужные поля.
if ($value !== 0) {
  $where[] = '`column` = :value';
  $params['value'] = $value;
}
...
$where = implode(' AND ', $where);
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
Как вариант, добавлять все поля.
Но в тех, по которым фильтровать не нужно - указывать is not null.
Ну и индекс, это позволит использовать один индекс на таблицу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы