gpt4 book ai didi

MySQL JSON_EXTRACT() 查询返回 null

转载 作者:行者123 更新时间:2023-12-04 10:58:01 27 4
gpt4 key购买 nike

我有以下 JSON-FileMYSQL数据库:

[
{
"order" : 0,
"value" : 0.168257
},
{
"order" : 0.031250,
"value" : 0.002387
},
{
"order" : 0.062500,
"value" : 0.002367
},
{
"order" : 0.093750,
"value" : 0.002365
},
{
"order" : 0.125000,
"value" : 0.002369
},
{
"order" : 0.156250,
"value" : 0.002384
},
{
"order" : 0.187500,
"value" : 0.002403
}
]

我想查询并获得“order”=0.156250的结果
我使用以下查询:
JSON_EXTRACT(jsonColumn,'$.order') ... WHERE JSON_EXTRACT(jsonColumn,'$.order') = 0.156250

它不工作。
我只能通过执行以下操作来选择列:
Select JSON_EXTRACT(jsonColumn,'$[5].order')

有人能告诉我如何在不提供 index 的情况下选择列吗?到 Select 语句?

谢谢!

最佳答案

您需要将其转换为 json_table过滤前先

select *
from
test t1
cross join
json_table(t1.jsonColumn,
"$[*]"
columns(
`Order` numeric(9,6) path "$.order",
`Value` numeric(9,6) path "$.value"
)
) t2
where t2.Order = 0.156250

dbfiddle

mySQL版本 5.7
select
*
from test t1
cross join (
select 1 as col1 union
select 2 union
select 3 union
select 4 union
select 5 union
select 6
) t2
where json_extract(t1.jsonColumn, concat('$[', t2.col1, '].order')) = 0.156250;

dbfiddle

关于MySQL JSON_EXTRACT() 查询返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com