表结构:
表数据:
期望结果:
虽然这种结果可以通过MySQL中的GROUP_CONCAT函数实现,但是此函数有字节长度限制
SELECT ROW_ID, CAST(CONCAT('[', GROUP_CONCAT('{\'FIELD_ID\'', ' : ', IF(INSTR(VALUE, '[{') = 0, CONCAT('\'', VALUE, '\''), VALUE), '}'), ']') AS BINARY) FROM T_TASK_DATA GROUP BY ROW_ID
DELIMITER $$
USE `mpp_master_data`$$
DROP PROCEDURE IF EXIS