在 json 列中查找字符串

Find string in json column

我正在尝试使用 doctrine/orm.

检查 find_this_message 消息是否存在于 json 列 errors

下面是 json 字段的示例:

[{"message_key": "another_message", "message_params": []}, {"message": "find_this_message", "message_params": []}]

我使用了下面的代码,但它总是returns什么都没有

$qb = $this->createQueryBuilder('er');

    $qb
        ->andWhere('JSON_CONTAINS(er.errors, :error) = 1')
        ->setParameter('error', '"'find_this_message'"');
    ;

 return $qb->getQuery()->getSingleResult();

提前感谢您的帮助:)

根据 Doctrine ORM documentation 你应该使用类似的东西:

$qb->select('*')
   ->from('er', 'er')
   ->where('JSON_CONTAINS(er.errors, :error) = 1')
   ->setParameter('error', '{"message": "find_this_message"}'); 

MySQL JSON_CONTAINS online