我尝试使用group_concat来更快地创建xml输出。记录号在传统查询之间是不同的。确实,当我的查询使用组concat时,我的记录较少。 SELECT GROUP_CONCAT( CONCAT('\n<p>\n', CONCAT('\n<id>',paIndex,'</id>\n'), CONCAT('<prInitiales>',prInitiales,'</prInitiales>\n'), CONCAT('<paNomPren>',paNomPrenom,'\n',ttT_Traitement_P,'</paNomPren>\n'), CONCAT('<ttTStatutP>',ttTStatutP,' - ',DATE_FORMAT(ttDateStatut,'%d/%m/%Y'),'\n',ttUserImportant,'</ttTStatutP>\n'), CONCAT('<paDossier1>',paDossier1,'\n',paDossier2,'</paDossier1>\n'), CONCAT('<paNumTel1>',paNumTel1,'\n',paNumTel2,'</paNumTel1>\n'), CONCAT('<paNaissanceS>',DATE_FORMAT(paNaissance,'%d/%m/%Y'),'</paNaissanceS>\n'), '</p>') ORDER BY paNomPrenom DESC) AS xml FROM 20Patients_1012 JOIN 30Traitemnt_201223 ON 20Patients_1012.paIndex = 30Traitemnt_201223.ttIndex JOIN 12Praticien_02 ON 30Traitemnt_201223.ttPraticien = 12Praticien_02.prIndex传统查询: SELECT 20Patients_1012.paIndex, 20Patients_1012.paNomPrenom, 20Patients_1012.paDossier1, 20Patients_1012.paDossier2, 20Patients_1012.paNaissance, 20Patients_1012.paNumTel1, 30Traitemnt_201223.ttTStatutP, 30Traitemnt_201223.ttDateStatut, 12Praticien_02.prInitialesFROM 20Patients_1012JOIN 30Traitemnt_201223 ON 20Patients_1012.paIndex = 30Traitemnt_201223.ttIndexJOIN 12Praticien_02 ON 30Traitemnt_201223.ttPraticien = 12Praticien_02.prIndex ORDER BY 20Patients_1012.paNomPrenom ASC感谢您的帮助 最佳答案 如the manual中所述: 结果将被截断为group_concat_max_len系统变量给定的最大长度,该默认值的默认值为1024。尽管返回值的有效最大长度受。在运行时更改max_allowed_packet值的语法如下,其中group_concat_max_len是无符号整数:SET [全球| SESSION] group_concat_max_len = val;关于php - GROUP_CONCAT奇怪的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10934025/ 10-13 02:49