必须先执行SELECT查询并看到结果表格,再点击结果下方的“导出”按钮;误点顶部导航栏“导出”标签页会导出整表而非查询结果,且需确认URL含sql_query参数、字符集设为utf8mb4。

导出 SELECT 查询结果时,别点“导出”标签页
直接在 SQL 执行框里写好 SELECT,点“执行”后看到结果表格下方有“导出”按钮——这才是导出当前查询结果的正确入口。如果误点顶部导航栏的“导出”标签页,phpMyAdmin 会默认导出整个表或数据库,和你的查询无关。
- “导出”标签页只管当前选中的数据库/表,不管 SQL 窗口里写了啥
- 执行完
SELECT后,页面 URL 通常会带?sql_query=...参数,这是可导出状态的信号 - 若没看到“导出”按钮,检查是否启用了“显示查询结果的导出链接”:在设置 → 主题 → “显示 SQL 查询结果的导出链接”需为启用
导出格式选 “SQL” 还是 “CSV”?看你要不要带建表语句
点击结果页下方“导出”后,在“格式”下拉菜单中:SQL 格式会生成含 INSERT INTO 语句的文件,适合还原到另一环境;CSV 或 JSON 则只导出纯数据,无结构信息。
- 选
SQL时勾选“另存为文件”,并确认“导出模式”为“插入”,否则可能输出CREATE TABLE+INSERT混合内容(不必要) - 若只要数据、不要字段名或引号包裹,CSV 导出里取消勾选“包含列名称”和“使用列的文本限定符”
- 大数据量时,
SQL格式可能因 PHP 内存限制失败,改用CSV更稳
导出大结果集失败?关掉“显示所有”再试
当 SELECT 返回几万行,而你又勾了“全选”(显示所有),phpMyAdmin 会尝试把全部结果加载进内存再导出,极易触发 Allowed memory size exhausted 错误或超时。
- 执行前先在 SQL 窗口加
LIMIT,比如SELECT * FROM logs WHERE date > '2024-01-01' LIMIT 50000 - 或者在结果页点击“导出”前,取消勾选“显示所有”复选框(位于结果表格右上角)
- 仍失败?改用命令行导出:
mysqldump -u user -p --where="date > '2024-01-01'" database_name table_name > output.sql
中文乱码导出?关键在“字符集”下拉框别忽略
导出 CSV 或 SQL 时,如果结果含中文却变成问号或 Mojibake,大概率是导出页面底部的“字符集”下拉框选错了。它不继承当前连接的字符集,必须手动设为 utf8mb4。
- 导出格式为
SQL时,同时勾选“添加SET NAMES utf8mb4”选项,确保导入时编码一致 - 导出
CSV后用 Excel 打开乱码?不是 phpMyAdmin 的问题,而是 Excel 默认用 ANSI 打开 CSV;用记事本另存为 UTF-8 编码,或用 LibreOffice 打开 - 若服务器 MySQL 配置里
character_set_client是latin1,即使选了utf8mb4也可能无效——需先在 SQL 窗口执行SET NAMES utf8mb4再查再导
导出动作本身不复杂,但真正卡住人的,往往是那个没注意的“字符集”下拉框,或是误把“导出标签页”当成“导出查询结果”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











