如何使用MySQL的JSON_EXTRACT函数提取JSON字段中的orgId值
MySQL提取非标准JSON格式字段的orgId值
你的config字段内容不是标准JSON格式,标准JSON要求键必须用双引号包裹、键值对用冒号分隔,所以直接用JSON_EXTRACT会失效。以下是两种解决方法:
方法一:转换为标准JSON后提取
先通过字符串替换将非标准格式转为合法JSON,再使用JSON_EXTRACT提取:
SELECT OrgName, JSON_EXTRACT( -- 依次修正格式:给开头加双引号、替换=为":"、分隔符前加双引号、修正末尾括号 REPLACE(REPLACE(REPLACE(REPLACE(config, '{', '{"'), '=', '":"'), ',', '","'), ')', '"}'), -- 注意键名要和数据一致,你的数据里是orgld,若实际是orgId请修改 "$.orgld" ) AS org_id FROM Company;
方法二:直接字符串截取(适合格式固定的场景)
如果config的格式始终固定,可直接用字符串函数截取目标值,无需转换JSON:
SELECT OrgName, -- 提取orgld=后到第一个逗号前的内容 TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(config, 'orgld=', -1), ',', 1)) AS org_id FROM Company;
内容的提问来源于stack exchange,提问作者Indresh Kumar
相关产品推荐
相关产品推荐

