如何通过关联表字段值筛选,使用mysqldump导出指定MySQL单表数据?
MySQL关联条件导出指定表数据方案
你可以直接在mysqldump的--where参数中使用关联子查询匹配符合条件的roleID,命令如下:
mysqldump --compact --no-create-info -u root -p RF role_permission --where="roleID IN (SELECT roleID FROM role WHERE organizationID=3121)" > role_permission.mysql
逻辑说明
- 子查询
SELECT roleID FROM role WHERE organizationID=3121会先拿到关联表role中组织机构ID为3121的所有角色ID - 外层筛选
role_permission表中roleID在上述结果集中的记录,即可导出你需要的目标数据
备选方案(无SQL子查询权限时使用)
如果你的数据库账号不支持在导出时执行子查询,可以分两步操作:
- 先执行SQL查询拿到目标角色ID:
SELECT GROUP_CONCAT(roleID) FROM role WHERE organizationID=3121;
- 按查询到的角色ID(示例中查询结果为100)直接导出:
mysqldump --compact --no-create-info -u root -p RF role_permission --where="roleID=100" > role_permission.mysql
内容的提问来源于stack exchange,提问作者user_12
相关产品推荐
相关产品推荐

