I have a cell that contains a very long string. If I use this query:
SELECT dettPDE FROM bollaOutDett WHERE idDoc>0 GROUP BY idDoc;
I have no problem, but in some cases I need to use this:
SELECT GROUP_CONCAT(DISTINCT IF(dettPDE='',NULL, dettPDE) SEPARATOR '|') AS dettPDESch
FROM bollaOutDett
WHERE idDoc>0
GROUP BY idDoc;
and in this case dettPDESch not return correctly.
Here the test code:
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
Any suggestion?
Original link to code: here
there is a limit for group_concat length
Default Value 1024
you can change this limit using a proper set
SET SESSION group_concat_max_len = 1000000;
The max limit for
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