0

データベースを.sqlファイルにバックアップする必要があります。これが私がやっていることです:

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

all= 1 と 3を持つレコードが得られますrole id。ロール ID 1 と 3 ごとに一番上の 1 行だけを取得することは可能ですか?

4

1 に答える 1

1

おそらく、フォームの句にサブクエリを記述することができます(where is your table primary key )。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 に答える