1. MySQL JSON数据处理实战:从字符串到结构化转换
作为一名长期与数据库打交道的开发者,我经常遇到需要处理JSON格式数据的场景。MySQL从5.7版本开始原生支持JSON数据类型,这为我们处理半结构化数据提供了极大便利。今天我要分享的是一个实际项目中遇到的案例:如何将存储在MySQL表中的JSON字符串转换为更易处理的结构化格式。
假设我们有一个wf_lcdy表,其中lct字段存储了如下JSON数据:
json复制{"15775d64e52c4ba3a8eef4bafc5f40e5":"875 162","75b67fab657748a9ab4bba141bfa0d36":"375 98","428299fd90814b3eaf129e8246f82b2a":"155 126"}
我们的目标是将它转换为:
json复制[{"id":"15775d64e52c4ba3a8eef4bafc5f40e5","x":875,"y":162},{"id":"75b67fab657748a9ab4bba141bfa0d36","x":375,"y":98},{"id":"428299fd90814b3eaf129e8246f82b2a","x":155,"y":126}]
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心解决方案解析
2.1 查询结构设计思路
整个解决方案采用三层嵌套查询结构,每层都有明确的职责:
- 内层查询:负责JSON字符串的初步解析和键值对拆分
- 中层查询:对拆分后的键值对进行清洗和格式化
- 外层查询:将处理后的键值对重组为目标JSON数组格式
这种分层设计使得每个步骤都清晰可维护,也便于后续的调试和优化。
2.2 完整SQL实现
以下是实现这一转换的完整SQL查询:
sql复制SELECT
CONCAT('[', GROUP_CONCAT(
CONCAT(
'{"id":"',
SUBSTRING_INDEX(SUBSTRING_INDEX(kv, ':', 1), '"', -1),
'", "x":',
