MySQL 查询的 JSON 输出在超过 1026 字节时不显示数据
Posted
技术标签:
【中文标题】MySQL 查询的 JSON 输出在超过 1026 字节时不显示数据【英文标题】:JSON output of a MySQL query is not displaying data when it is over 1026 bytes 【发布时间】:2016-02-03 05:47:12 【问题描述】:我正在使用以下查询来获取 JSON 格式的数据:
SELECT
CONCAT("[",
GROUP_CONCAT(
CONCAT("""latitude"":""",Latitude,""""),
CONCAT(",""londitude"":""",Longitude),"""")
,"]") AS json
FROM hq6k2_devicedata_861001000468427
where ReceiveTime between '2014-08-31 14:34:19' and '2014-08-31 14:40:36';
我观察到,当返回输出大小低于 ~1026 字节时,此查询完美运行。但是当它超出该范围时,输出如下:
[
"latitude": "2344.152860N",
"londitude": "09024.699120E"
,
"latitude": "2344.152860N",
"londitude": "09024.699120E"
,
//Other data and finally the last one :
"latitude": "234] //Closing the JSON with incomplete data
我是否遗漏了什么或者这种查询有任何大小限制?
【问题讨论】:
这是你的答案:***.com/questions/5036605/… 不,我还没有在编程中尝试过。是的,我直接在终端运行此查询。我在后端使用 java,我知道如何在 java 中制作 json 数据。没有问题。我担心的是,我尝试从终端中的直接 mysql 查询生成 json 数据有什么问题 查看我链接的那个帖子,它解释了完全相同的问题及其解决方案 【参考方案1】:GROUP_CONCAT()
在 MySQL 查询中将多行转换为单个字符串。但是,此函数的结果最大长度为 1024 个字符。
您可以更改参数 group_concat_max_len 以增加此限制:
SET SESSION group_concat_max_len = 1000000;
以上设置为SESSION
SET GLOBAL group_concat_max_len = 1000000;
以上设置为 GLOBAL
请查看以下链接了解更多详情: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
【讨论】:
很好,解决了您的问题。 @Nazar-E-Bukhari :)以上是关于MySQL 查询的 JSON 输出在超过 1026 字节时不显示数据的主要内容,如果未能解决你的问题,请参考以下文章
将 AWS MySQL 查询的 JSON 输出并在网页上显示为 DataTable