phpMyAdmin 4.9 默认对查询结果隐式添加 LIMIT 100,且导出仅基于已截断的前端渲染内容;需删LIMIT或显式写LIMIT 0,并点“显示所有”后使用结果页下方导出按钮。

phpMyAdmin 4.9 导出查询结果时只导出前100行
这不是数据丢了,是默认加了 LIMIT 100。phpMyAdmin 4.9 的 SQL 标签页执行查询后,即使你没写 LIMIT,它也会自动补上——这是它的默认行为,不是你的 SQL 有问题。
- 先删掉 SQL 末尾的
LIMIT 100(如果有),再执行 - 如果没写但依然只出 100 行,说明 phpMyAdmin 自动加了;必须手动在 SQL 末尾显式写
LIMIT 0或LIMIT 5000等足够大的值 - 导出按钮在查询结果下方,不是顶部导航栏那个「导出」——点错位置会导出整张表,而不是你刚查的结果
导出 CSV/JSON 时长字段内容被截断(如 TEXT、JSON)
phpMyAdmin 4.9 不会把完整字段内容塞进导出文件里,它先在前端按 $cfg['LimitChars'] 截断显示,再把“已截断的内容”导出去——也就是说,你导出的 CSV 里看到的省略号(…),就是最终结果。
- 导出前必须先点结果页右上角的「显示所有」,否则连“当前页”的完整字段都看不到
-
$cfg['LimitChars']默认是 50 或 100,远不够看 JSON;需改大(比如 2000),改完重启 Web 服务或硬刷新页面 - 若无法改配置,用「打开」图标(小窗口图标)逐个查看完整值,再手动复制粘贴到文本编辑器中拼 CSV
导出大结果集失败:空白页、504 或卡在“正在导出…”
phpMyAdmin 4.9 的导出逻辑是把整个结果集加载进 PHP 内存再拼成文件,超过几 MB 就容易超时或 OOM。它不会报错,只会静默中断,导出的文件可能缺最后几张表或结尾的 COMMIT。
- 检查
config.inc.php中是否设置了$cfg['ExecTimeLimit'] = 0(不限制执行时间) - 避免用「快速」模式导出大量行;必须选「自定义」→「格式特定选项」→ 勾选「保存为文件」+ 取消所有压缩(gzip/zipped)
- 导出后立刻用文本编辑器打开 .sql 或 .csv 文件,搜
CREATE TABLE数量是否和实际表数一致;搜COMMIT是否在文件末尾
导出带条件的增量数据却导出了整张表
常见原因是误用了表级导出入口:你在 SQL 标签页写了 SELECT * FROM logs WHERE created_at >= '2024-05-01',执行后点了顶部导航栏的「导出」,结果导出的是整张 logs 表,不是查询结果。
立即学习“PHP免费学习笔记(深入)”;
- 务必确认你点的是查询结果表格**正下方**那个「导出」按钮(通常带小硬盘图标)
- 该按钮只对当前查询结果生效;若结果分页,必须先点「显示所有」再导出,否则只导当前页
- 导出格式选「CSV」或「JSON」更安全;选「SQL」会生成 INSERT 语句,字段顺序和类型可能和原表不一致,尤其含 NULL 或特殊字符时
导出截断问题最麻烦的地方不在操作步骤,而在于它不报错——你拿到一个看似完整的文件,但里面可能缺最后 20% 的数据,或者所有长字段都被砍了一半。验证永远比重导更快。



















