Множественный фильтр по текстовому полю - MySQL
Формулировка задачи:
Привет специалистам!
Есть таблица в БД MySQL с текстовым полем complete.
В этом поле хранится массив чисел в JSON, напр: [1,3,4,5,10] или [], если массив пуст.
Поле отвечает за комплектацию: принадлежности, выданные водителю на время аренды машины (1 - ключ от машины, 2 - домкрат и т.д.); при выдаче машины в веб-интерфейсе оператор ставит соответствующие чекбоксы, чтобы при возврате можно было проверить комплектацию и взыскать штраф, если чего-то не хватает.
Так вот вопрос: как построить фильтр по комплектации? На входе имеется массив выбранных принадлежностей, по которым надо отфильтровать выборку.
Если текст в JSON - не лучший вариант для хранения, подскажите более удобный.
Надеюсь, вопрос понятен.
Решение задачи: «Множественный фильтр по текстовому полю»
textual
Листинг программы
SELECT dt.fio , tl.name, dt.date_out FROM driver_tools dt JOIN drivers dr ON dr.id = dt.id_driver JOIN tools tl ON tl.id = dt.id_tool WHERE dt.id_tool IN (? ,? , ?, ?) AND dt.date_return IS NULL
Объяснение кода листинга программы
В данном коде выполняется запрос к базе данных с использованием языка SQL. Цель запроса - выбрать данные из нескольких таблиц (driver_tools, drivers, tools) с применением множественного фильтра по текстовому полю. Список элементов кода:
- SELECT dt.fio , tl.name, dt.date_out - выбираемые поля для вывода
- FROM driver_tools dt - таблица, из которой выбираются данные
- JOIN drivers dr ON dr.id = dt.id_driver - соединение таблицы drivers с таблицей driver_tools по полю id
- JOIN tools tl ON tl.id = dt.id_tool - соединение таблицы tools с таблицей driver_tools по полю id
- WHERE dt.id_tool IN (?, ?, ?, ?) - условие фильтрации по полю id_tool. Значения фильтра указываются в скобках
- AND dt.date_return IS NULL - условие фильтрации по полю date_return. Значение фильтра указывается в скобках Значения фильтра указываются в скобках, но в коде они не представлены. В результате выполнения запроса будут выбраны и выведены только те строки, которые удовлетворяют всем условиям фильтрации.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д