部分字符串作为字段值mysql返回

u3r8eeie  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(377)

我从mysql查询结果中得到不完整的字符串值。当字符串太长时,该值将被切片。我把这个值作为 JSON 字符串。无论字段值有多长,我的本地数据库都没有问题。
我的问题是:

  1. CREATE DEFINER=`devdbuser`@`localhost` PROCEDURE `GetTrainingFilesByID`(IN trainingID int)
  2. BEGIN
  3. SELECT t1.*, concat(t2.firstname,' ',t2.lastname) as username
  4. FROM users t2
  5. INNER JOIN
  6. (
  7. SELECT t.*,
  8. CONCAT('[',
  9. GROUP_CONCAT(CONCAT('{"id":"',d.id,
  10. '","name":"', d.title,
  11. '","file_path":"',d.doc_path,
  12. '","is_video":"',d.is_video,'"}'
  13. )), ']'
  14. ) files
  15. FROM training t
  16. LEFT JOIN training_documents d
  17. ON t.id = d.training_id
  18. GROUP BY t.id
  19. ) t1
  20. ON t1.updated_by = t2.id
  21. WHERE t1.id = trainingID
  22. LIMIT 1;
  23. END

问题在于 files 字段值。
这是你的答案 incomplete 输出:

  1. "[{"id":"1", "name":"Branch Workflow Model for GBD_1.pdf", "file_path":"1455443689.pdf", "is_video":"0"},
  2. {"id":"2", "name":"http://192.168.11.32/GBD-Videos/testvideo.mp4", "file_path":"http://192.168.11.32/GBD-Videos/testvideo.mp4", "is_video":"1"},
  3. {"id":"6", "name":"COD-CC-CrowdWisdom-Report-exclusive_mybigcommerce_com-2018_09_26-05_28_58.pdf", "file_path":"1862665875.pdf", "is_video":"0"},
  4. {"id":"7", "name":"https://www.youtube.com/watch?v=rCAIY5n1hPA.mp4", "file_path":"https://www.youtube.com/watch?v=rCAIY5n1hPA.mp4", "is_video":"1"},
  5. {"id":"8", "name":"https://www.youtube.com/watch?v=rCAIY5n1hP1.mp4", "file_path":"https://www.youtube.com/watch?v=rCAIY5n1hP1.mp4", "is_video":"1"},
  6. {"id":"19", "name":"Branch Workflow Model for GBD.docx", "file_path":"1250685453.docx", "is_video":"0"},
  7. {"id":"20", "name":"COK_CorporateMedicineDelivery_Growbydata.pdf", "file_path":"1245383653.pdf", "is_video":"0"},
  8. {"id":"21", "name":"COK_Intro_Growbydata.pdf", "file_path":"1918218679.pdf", "is_video":"0"},
  9. {"id":"22", "name":"http:/]"

mysql是否有防止长字段结果值的功能?我该怎么解决这个问题?

kninwzqo

kninwzqo1#

这主要是因为您使用的是组concat。我建议您运行此查询,以便增加组concat的限制

  1. SET GLOBAL group_concat_max_len=15000

希望这有帮助。:)

相关问题