我有一张表 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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句