Выборка из БД по колонке с 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 шт):

Автор решения: user615708

Методом проб и ошибок всё же удалось разобраться с JSON_CONTAINS. А кто бы что не говорил про json, все равно хранить небольшие данные так удобно во многих аспектах, хоть и не всегда практично.

$qb->andWhere("JSON_CONTAINS(u.services_ids, :services_ids, '$') = 1")
  ->setParameter('services_ids', '"'.$data['id_service'].'"');
→ Ссылка