Как составить условие where для диапазонов чисел x-y-z x,y,z x-y,z?
Есть база в которой хранятся в строковом виде данные для фильтра в нескольких форматах:
10
10 or 20
10, 12, 16 or 20
10, 15, 20, 30, 40
12-29
Данные для перечисления количества уроков в неделю, выводятся на сайте как есть, тоже строками.
Задача сделать фильтр выбора чекбоксами несколько вариантов и отфильтровать условием where:
Уроков в неделю
- меньше чем 15
- 16-20
- 21-25
- 26-30
- более 31
Подскажите как составить такое условие. С оператором like не так все просто, данные в фильтре и в базе разные. Делаю на Yii2.
Вот примерный код модели SchoolSearch для составления запроса ActiveDataProvider
Есть база в которой хранятся в строковом виде данные для фильтра в нескольких форматах
Выкинуть такую БД и перестать заниматься извращениями.
Хранить надо в структурированном (нормальном) виде. В крайнем случае фильтры можно хранить в json, который делать из ActiveQuery->where
Подозревал что кто-то так ответит. )
Скорее всего да, буду переделывать базу. Интересно было найти решение с такими данными в полях. Сейчас уже накопал решение с регуляркой для where, но это все-таки влияет на нагрузку со стороны пользователей.