アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【MySQL
【MySQL】WHERE条件つきでテーブルをダンプする
POSTED BY
2021-05-05

mysqldumpに-tオプションをつけると、DROP TABLE/CREATE TABLE定義を出力せずINSERT文だけ吐き出してくれる。

さらに、--whereオプションにて、SELECT条件にマッチするレコードだけ取れるので、上記-tと合わせ即SQL文として使えるダンプファイルが作成できる。

まとめると

mysqldump -u <ユーザー名> -p<パスワード> <データベース名> -t <テーブル名> --where "条件文" > output.dmp

のようになる。例として、

ユーザー名:hogeuser
パスワード:hogepass
データベース名:mydb
テーブル名:mytable

として、mytableのname(TEXT)要素において先頭4文字がABCDで始まるレコードを抽出するには、

mysqldump -u hogeuser -phogepass mydb -t mytable --where "name like 'ABCD%'" > output.dmp

などとする。LIKE文はシングルクオテーションで囲わなければいけないが、シェル上で実行するので条件文ごとダブルクオテーションで囲うのがポイント。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆お仲間ブログ1↓
匠のコーヒーブレイク
☆お仲間ブログ2↓
一人社長の不動産業務日誌
【キーワード検索】