2014年5月16日金曜日

mysqlだけでできる便利な処理いろいろ

mysqlで調べたことをいくつかメモ。

■insert ... select

これは前から知ってたけどもう一度おさらい。

insert into TABLE (
col1,
col2,
col3
) select
val1,
val2,
val3
from TABLE2


■on duplicate key update

行がなければinsertして、なければupdateしてくれる。すごい便利。

insert into TABLE (
col1,
col2,
col3
) select
val1,
val2,
val3
from TABLE2
on duplicate key update col2 = values(col2), col3 = col3 + values(col3)


※この場合はcol1が主キーである必要がある。


■update ... select

insert ... select のupdate版みたいな感じ。
※やってみたけどmysqlが固まる。すごく重いかも。

update TABLE A, (
select
col1,
col2,
col3
from TABLE2
) B set A.col4 = B.col1



■replace

これも前から知ってたけどおさらい。
新しいデータはinsert、古いデータはdeleteしてinsertされる。上書きみたいな感じ。

replace into TABLE (
col1
)
select col2 from TABLE2



mysql単体でもかなり色々なことができますね。

0 件のコメント:

コメントを投稿