Множественный фильтр по текстовому полю - 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) с применением множественного фильтра по текстовому полю. Список элементов кода:

  1. SELECT dt.fio , tl.name, dt.date_out - выбираемые поля для вывода
  2. FROM driver_tools dt - таблица, из которой выбираются данные
  3. JOIN drivers dr ON dr.id = dt.id_driver - соединение таблицы drivers с таблицей driver_tools по полю id
  4. JOIN tools tl ON tl.id = dt.id_tool - соединение таблицы tools с таблицей driver_tools по полю id
  5. WHERE dt.id_tool IN (?, ?, ?, ?) - условие фильтрации по полю id_tool. Значения фильтра указываются в скобках
  6. AND dt.date_return IS NULL - условие фильтрации по полю date_return. Значение фильтра указывается в скобках Значения фильтра указываются в скобках, но в коде они не представлены. В результате выполнения запроса будут выбраны и выведены только те строки, которые удовлетворяют всем условиям фильтрации.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы