MySQL JSON 对子查询的查询

MySQL JSON query on a subquery

我有一个Table一个

    id 
    something
    jsonModel

jsonModel 可能看起来像这样

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

当某个 ID 包含在 jsonModel 中时,我正在尝试 select 来自 table 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

尽管这不是正确或最佳方法,但它确实有效,

SELECT * from `A` where `jsonModel` like '%customId%59d61ffcf5bcb11f250d73275a252b62624eac000180ab59%'