gpt4 book ai didi

json - 搜索对象的 SQL JSON 数组

转载 作者:行者123 更新时间:2023-12-04 15:48:48 25 4
gpt4 key购买 nike

我有一个包含 JSON 的 SQL 列,例如

{
"tags":[
{"id":11,"x":99.12343123213,"y":88.123232},
{"id":12,"x":99.12343123213,"y":88.123232},
{"id":13,"x":99.12343123213,"y":88.123232}
]
}

我正在尝试查找值为“13”的记录,但是对象的数量可能会有所不同。我知道我可以使用类似于以下内容的代码:
select * from Logs WHERE JSON_VALUE([log],'$.tags[0].id') LIKE '13'

不幸的是,数组中的对象数量可以是任意数量。如何在数组中的每个对象中搜索该值?

我知道我可以在字符串中搜索 '%"id":13,%' 的值,但这似乎是一个困惑的解决方案。

最佳答案

您可以使用 OPENJSON 提取 id来自您的 JSON 对象和 CROSS APPLY 的值给您的 logs表,仅选择具有 id 的行JSON 对象中的值 13:

SELECT logs.*
FROM logs
CROSS APPLY OPENJSON([log], '$.tags') WITH (id INT '$.id')
WHERE id = 13

Demo on dbfiddle

关于json - 搜索对象的 SQL JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54729222/

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