Выборка из БД по колонке с JSON | Symfony
У каждого юзера в БД есть колонка services_ids
в которой содержится массив с ID
- ["6","5","4","1"]
. В данном коде я пытаюсь выбрать юзеров у которых есть цифра 6. Но ничего не проиходит. В чем проблема? Использую расширение DoctrineJsonFunctions
. В doctrine.yaml
указано JSON_ARRAY:Scienta\DoctrineJsonFunctions\Query\AST\Functions\Mysql\JsonArray
.
Только прошу, если не знаете как решить, то и не пишите, что это всё неправильно, надо использовать смежные таблицы и прочее...
$qb->andWhere("JSON_ARRAY(u.services_ids, :services_ids) = true")
->setParameter('services_ids', 6);
Ответы (1 шт):
Методом проб и ошибок всё же удалось разобраться с JSON_CONTAINS
. А кто бы что не говорил про json, все равно хранить небольшие данные так удобно во многих аспектах, хоть и не всегда практично.
$qb->andWhere("JSON_CONTAINS(u.services_ids, :services_ids, '$') = 1")
->setParameter('services_ids', '"'.$data['id_service'].'"');