@Davidaa_WoW

Как составить запрос с динамической фильтрацией?

Из клиентской части приходит запрос с фильтрами - параметр os_id, 3 значения каждое из которых является булевым. Составляю запрос:
SELECT * FROM `wp_s3cu_authorization_logs`
  WHERE (os_id $operator1 'android' or os_id operator2 'windows10' OR os_id operator3 'macos')
. Подставленные логического 'or' как в данном случае не работает корректно. Т.к. если мне нужно допустим вывести только android - соответственно операторы будут: ['=', '<>', '<>'], будет выводиться и android и windows. Как составить запрос?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Делаешь такой шаблон
SELECT * FROM `wp_s3cu_authorization_logs` WHERE 1=0

а потом к нему добавляешь строки. Если был активирован флажок windows - то добавляешь строку
OR os_id = 'windows10'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT * FROM `wp_s3cu_authorization_logs`
  WHERE (operator1 = '=' AND os_id  = 'android')
     OR (operator2 = '=' AND os_id  = 'windows10')
     OR (operator3 = '=' AND os_id  = 'macos')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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