勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

MySQLでWhere句を使ってカラム指定でデータコピー

      2016/08/22

MySQLで大量のデータを保存しているテーブルがあり、そのデータを絞った上で尚且つカラムを指定して他のテーブルにコピーしたかった。ダンプしてインサートしようかと思って少し試したところデータ量が多いからか時間がかかりすぎた。何か方法は無いか探したところ簡単にコピーできる方法があった。

 

SQL文

例えば以下条件の場合は、

  • テーブルAからテーブルBにコピー
  • カラムはidとnameを入れたい
  • テーブルBには新カラムのコピー日時をregist_dateカラムとして入れたい
  • WHERE句はテーブルAのdateカラムで2016-01-01から2016-01-31までを指定

このような形になる。WHERE句はさらにANDとかで絞込み検索が可能。

 

その他

絞込み検索をダンプしてインポートする方法だと100万件ほどのデータで1時間ほどかかったが、この方法だと5分もかからずに処理できた。

 - MySQL

  関連記事

msyql-image
MySQLのtinyintのカラムにbool値を入れた場合

他所のシステムに携わることがあり中身を色々見ているとMySQLでtinyint( ...

msyql-image
MySQLで加算しつつNULL値は0にする

いくつかのコードに対して投票を行い、 その合計値をスコアとして出したい。 ただ、 ...

msyql-image
mysqldumpが使えないレンタルサーバでMySQLのバックアップ

mysqldumpが使えないレンタルサーバで開発を行うことがあり、尚且つ他社に使 ...

msyql-image
MySQLでパターンマッチの逆

LIKE検索の逆ってなったのでメモ。 NOT LIKE '%あああ%' が正解み ...

msyql-image
MySQLで日時や日付で範囲検索する際の速度向上

結論としてはUNIXタイムスタンプ型にする。 MySQLでdatetime型で2 ...

msyql-image
MySQLでテーブルとデータの複製(コピー)

MySQLでテーブルとデータを複製したかった。ダンプとかではなく、簡単なSQL文 ...

msyql-image
MySQLで経度緯度から半径○Kmのデータを抽出

経度と緯度をtext型として格納しているMySQLのテーブルがあり、指定した経度 ...

msyql-image
MySQLでIPを整数値としてカラムに格納する

MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...

msyql-image
異なるVPS間でMySQLの接続を行う

異なるVPS間でMySQL接続を行った際のメモ。 さくらVPS(IP:111.1 ...

msyql-image
MySQLでserver has gone~というエラー

MySQLで「MySQL server has gone away」というエラー ...