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;
尽管这不是正确或最佳方法,但它确实有效,
SELECT * from `A` where `jsonModel` like '%customId%59d61ffcf5bcb11f250d73275a252b62624eac000180ab59%'
我有一个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;
尽管这不是正确或最佳方法,但它确实有效,
SELECT * from `A` where `jsonModel` like '%customId%59d61ffcf5bcb11f250d73275a252b62624eac000180ab59%'