如何使用正则表达式在 mysql 中搜索 JSON 数据

How to search JSON data in mysql using Regular expression

我是正则表达式的新手,我在table中存储了JSON个数据。我想根据userId取数据,userId是一个属性的Users对象

示例:如果用户包含 513,我想获取所有记录

我的table数据样本:

 Table name:share

Id  name            sharedusers
1   xxxx            {"accessType":0,"permission":"1","specificUsers":
                    [{"users":"502,512,513","permission":"1"}]}

2   yyy             {"accessType":0,"permission":"1","specificUsers":
                    [{"users":"47,52,60","permission":"1"}]} 

3   zzzz            {"accessType":0,"permission":"1","specificUsers":
                    [{"users":"502,512,513","permission":"1"}]}  

I have tried this code but I am getting all the records, filter is not applied

SELECT * FROM share where sharedusers  REGEXP '"users":"[[:<:]]513[[:>:]]"';

请给任何样品。

您可以使用

REGEXP '"users":"[^"]*[[:<:]]513[[:>:]]'

这里,添加了[^"]*(除"之外的0+个字符)并删除了最后的"以有效匹配513作为一对内的整个单词包含值的引号。

升级到 MySQL 5.7 并使用内置函数查询 JSON 列。