我有一个包含 8 列和 62,000 多行的表。我希望 MySQL 通过 select 语句将其表定义转换为 JSON:
SELECT
CONCAT(
'[',
GROUP_CONCAT(
JSON_OBJECT(
'json_column_name', tbl.actual_column_name,
...
)
),
']'
)
FROM
table_name tbl;
但是,一旦 JSON 到达表中的第 4 行,即使是 LIMIT 2
也会被剪切。声明用于测试(我不明白,因为我仅限于前两行)。我已经增加了我的max_allowed_packets
到 1GB,但 JSON 仍然被削减。
最佳答案
JSON 文档的限制由 MySQL 协议(protocol)的 max_allowed_packet 限制设置为大约 1GB。在尝试写入服务器之前,您可以使用 JSON_STORAGE_SIZE 函数来测试您尝试放入列中的内容是否超过该大小。
如果是,您可以将其拆分为多列 1GB 组件。
关于mysql - 从 MySQL 运行 SELECT 时 JSON 长度的最大限制是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628061/