WITH RECURSIVE nums (n) AS (
SELECT 1
UNION ALL
SELECT n + 1 FROM nums WHERE n < (SELECT MAX(LENGTH(PZ) - LENGTH(REPLACE(PZ, ',', '')) + 1) FROM test)
),
split_pz AS (
SELECT
UUID,BT,
SUBSTRING_INDEX(SUBSTRING_INDEX(PZ, ',', n), ',', -1) AS PZ,
SJ1,TBR,NR,MJ,LX
FROM test
JOIN nums ON n <= LENGTH(PZ) - LENGTH(REPLACE(PZ, ',', '')) + 1
)
SELECT * FROM split_pz;
这样吗?