案例数据:(只放了一条数据)
[{“categoryId”: 130, “categoryName”: “API工艺研究”}, {“categoryId”: 136, “categoryName”: “化合物委托生产”}, {“categoryId”: 139, “categoryName”: “制剂工艺研究”}, {“categoryId”: 144, “categoryName”: “制剂委托生产”}, {“categoryId”: 147, “categoryName”: “药理药效毒理研究”}]
这里有categoryId:130、136、139、144、147,以及对应的categoryName
需求:
查询包含136、147有哪些列
方法:
SELECT
service_field_drug_tag
FROM
fmall_company
WHERE
REPLACE ( JSON_EXTRACT( service_field_drug_tag, '$[*].categoryId' ), '[', ',' ) REGEXP '136|147'
JSON_EXTRACT: 截取数据库中指定字段中存储的json数据中的某个字段对应的值,‘$[*].categoryId’:取出所有categoryId

REPLACE: 直接替换某字段中的特定字符串:replace (field_name,from_str,to_str)
REGEXP: 正则拼接多条值
结果:

2933

被折叠的 条评论
为什么被折叠?



