WITH RECURSIVE numbers AS ( SELECT 1 AS n UNION ALL SELECT n + 1 FROM numbers WHERE n < ( SELECT MAX(LENGTH(answer) - LENGTH(REPLACE(answer, '|', '')) + 1) FROM DY_DWRG_TEST ) ) SELECT JSON_UNQUOTE(JSON_EXTRACT( CONCAT('["', REPLACE(answer, '|', '","'), '"]'), CONCAT('$[', numbers.n-1, ']') )) AS value FROM DY_DWRG_TEST JOIN numbers ON numbers.n <= LENGTH(answer) - LENGTH(REPLACE(answer, '|', '')) + 1 ORDER BY numbers.n; 数据集中是这条语句 |