0

我需要将数据库备份到.sql文件中。这就是我正在做的事情:

mysqldump --user=aaa \
          --password=aaa myDb \
          --tables users \
          --where="role_id in(1,3)" > c:\db-backup\users.sql

它为我提供了 = 1 和 3all的记录role id。是否可以为每个角色 id 1 和 3 仅获取前一行?

4

1 回答 1

1

您可能会在表单的子句中编写一个子查询(您的表主键在哪里)。WHEREid IN ( SELECT ... )id

我不太确定“第一行”是什么意思,但是例如,如果您只需要具有最大 ID的行,则类似的方法可能会起作用:

mysqldump [...] \
   --where="id IN ( SELECT MAX(id) FROM users WHERE role_id in(1,3) GROUP BY role_id) "

根据您的确切需要,您可能必须找到自己的子查询,但我认为这是要走的路。

于 2013-08-14T08:17:57.703 回答