sql - 查询一维 JSON 字符串
问题描述
我正在尝试检查一维数组字符串是否像:
[1,2,3,4,5]
包含某个值,例如 4。
我知道使用多维数组我可以执行以下操作:
JSON_VALUE(columnName, '$.key')
但对于我的生活,我不知道如何搜索无密钥的 json 字符串。
我试过了:
WHERE JSON_VALUE(columnName, '$') = 1
WHERE JSON_VALUE(columnName, '$.') = 1
WHERE 1 IN JSON_VALUE(columnName, '$')
WHERE 1 IN JSON_VALUE(columnName, '$.')
没有任何效果。
解决方案
假设字符串'[1,2,3,4,5]'
在表的列中,您可以使用EXISTS
with OPENJSON
:
SELECT V.YourColumn
FROM (VALUES('[1,2,3,4,5]'),('[7,8,9]'))V(YourColumn)
WHERE EXISTS (SELECT 1
FROM OPENJSON(V.YourColumn)
WITH (Value int '$') OJ
WHERE Value = 4);
推荐阅读
- c++ - 动态创建和填充数组
- scala - 如何从 Akka Http Web-socket 客户端接收消息?
- python - 如何处理 Python 中的斜线和 %2F?
- web-services - SOAP 服务的“代表”
- docker - 在 Chaincode Dev 模式下为 Fabric 添加新链码的位置
- css - 在我的叠加层上叠加文本
- android - 从我们自己的服务器而不是 Play 商店分发的 Android 应用程序的推荐/邀请跟踪
- ruby-on-rails - 设计 - 没有 active_for_authentication 的 bypass_sign_in?打回来
- c# - Windows XP 上捆绑的 .NET 应用程序
- arduino - 随时间绘制 PWM 的简单方法