Задать вопрос
@kucheriavij

Как искать по json строке в базе данных?

Добрый день. Имеется строка в БД (mysql) вида
{"interval":["пн,вт","ср"],"tm1":["08:00","09:00"],"tm2":["20:00","21:00"],"notice":["",""],"hd":["0","0"]}
где tm1 это время открытия, а tm2 время закрытия. Как в yii2 через ActiveRecord осуществлять поиск по подобного рода строке? Дело в том что в этой строке записей может быть не ограничено, и каждое время относится к своему значению interval...
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
qonand
@qonand
Software Engineer
Yii2 не предоставляет встроенных функций в AR для выборки данных по JSON-полям. Для начала напишите SQL-запрос выбирающий данные необходимым Вам образом, и только потом задумывайтесь как его перевести на Yii. В случае с MySQL вообще не понятно чем оправдано хранение JSON-массива если по нему необходимо производить поиск. Гораздо лучше было бы перепроектировать БД
Ответ написан
DmitryIvaneychik
@DmitryIvaneychik
Developer in VoxImplant
Если уж нужно так хранить данные, то лучше использовать специальный тип для колонки.
в PostgreSql появился jsonb. Возможно в mysql тоже уже есть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы