mySql SELECT GROUP_CONCAT 查询不是 return 长文本单元格中的所有数据

mySql SELECT GROUP_CONCAT query not return all data in longtext cell

我有一个包含很长字符串的单元格。 如果我使用这个查询:

SELECT dettPDE FROM bollaOutDett WHERE idDoc>0 GROUP BY idDoc;

我没有问题,但在某些情况下我需要使用这个:

SELECT GROUP_CONCAT(DISTINCT IF(dettPDE='',NULL, dettPDE) SEPARATOR '|') AS dettPDESch 
FROM bollaOutDett 
WHERE idDoc>0 
GROUP BY idDoc;

在这种情况下,dettPDESch 不正确 return。

这里是测试代码:

DROP TABLE IF EXISTS bollaOutDett;
CREATE TABLE bollaOutDett (idDoc int, dettPDE longtext);
INSERT INTO bollaOutDett (idDoc, dettPDE)
VALUES 
    (1, '[{"tab":"PArticoli","id":"3","codProdotto":"2SA1264N","qta":"1","artSer":"1","seriale":"H1","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H2","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H3","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H4","artLot":"0","lotto":""},{"tab":"PArticoli","id":"3","codProdotto":"2SA1264N","qta":"1","artSer":"1","seriale":"J1","artLot":"0","lotto":""}]'),
    (2, ''),
    (3, '[{"tab":"PArticoli","id":"3","codProdotto":"2SA1264N","qta":"1","artSer":"1","seriale":"H1","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H2","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H3","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"H4","artLot":"0","lotto":""},{"tab":"PArticoli","id":"3","codProdotto":"2SA1264N","qta":"1","artSer":"1","seriale":"J1","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"J2","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"J3","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"J4","artLot":"0","lotto":""},{"tab":"PArticoli","id":"3","codProdotto":"2SA1264N","qta":"1","artSer":"1","seriale":"K1","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"K2","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"K3","artLot":"0","lotto":""},{"tab":"PArticoli","id":"879","codProdotto":"2SA1267","qta":"1","artSer":"1","seriale":"K4","artLot":"0","lotto":""}]'),
    (4, '');


SELECT GROUP_CONCAT(DISTINCT IF(dettPDE='',NULL, dettPDE) SEPARATOR '|') AS dettPDESch 
FROM bollaOutDett 
WHERE idDoc>0 
GROUP BY idDoc;

SELECT dettPDE
FROM bollaOutDett 
WHERE idDoc>0 
GROUP BY idDoc

有什么建议吗?

原文link转码:here

group_concat 长度有限制

Default Value 1024

您可以使用适当的设置更改此限制

SET SESSION group_concat_max_len = 1000000;

的最大限制

The maximum value for group_concat_max_len for 64-bit is 18446744073709551615

The maximum value for group_concat_max_len for 32-bit is 4294967295

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len