【发布时间】:2020-04-23 13:39:26
【问题描述】:
我在 SQL 表 (MSSQL Server) 的单个列中存储了一个 json 数组。现在我想使用 LIKE “模式”和通配符过滤一些行。存储的对象是这样的:
[{"id":"W678","value":"282779"},
{"id":"O891","value":"25896"},
{"id":"E859","value":"12711"},
{"id":"M914","value":"31513"}]
例如,我想过滤其 JSON 数组中包含“id”=“W678”元素且值包含“27”的行
在使用正则表达式的情况下,以下正则表达式对我有用:
/.+{"id":"W678","value":"[^{}]*27[^{}]*"}.+/
但我不知道如何将上述正则表达式转换为 SQL 通配符表达式。 我已经尝试过类似的方法,但它不起作用。
LIKE '%{"id":"W678","value":"[^{}]%' + @Value + '[^{}]*%"}%'
谢谢
【问题讨论】:
-
您使用的是哪个 dbms?
-
@jarlh Sql 服务器
-
如果您使用的是 SQL Server 2016 或更高版本:Microsoft: JSON data in SQL Server。
-
您的 SQL Server 版本是多少?
-
@Zhorov Sql Server 2016
标签: sql json sql-server wildcard