子查询上的 MySQL JSON 查询

约翰尼19

我有一张表 A

    id 
    something
    jsonModel

jsonModel 可能看起来像这样

{  
   "text":"foo",
   "subkey1":{  
      "entity":{  
         "name":"foo",
         "customId":"59d61ffcf5bcb11f250d73275a252b62624eac000180ab59"
      }
   }
}

当 jsonModel 中包含某个 ID 时,我试图从表 A 中选择一行。

我试过这个,但它不起作用,说我不允许在表达式中使用通配符

SELECT 
    * 
FROM A 
WHERE json_contains(jsonModel,'59d61ffcf5bcb11f250d73275a252b62624eac000180ab59', $**.customId)

有没有办法在知道我不知道模型中 customId 可以在哪里的情况下实现这一点?

编辑:

我最终写了这个可行的,但我不知道在这个或 wchiquito 之间哪个解决方案是最好的

SELECT * 
from A WHERE 
JSON_CONTAINS(JSON_EXTRACT(jsonModel, '$**.customId'),  '"59d61ffcf5bcb11f250d73275a252b62624eac000180ab59"'); 
小男孩

尝试:

SELECT
  `id`,
  `jsonModel`
FROM
  `A`
WHERE
  JSON_SEARCH(
    `jsonModel`,
    'one',
    '59d61ffcf5bcb11f250d73275a252b62624eac000180ab59',
    NULL,
    '$**.customId'
  ) IS NOT NULL;

db-fiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章