Baccho Log

No Image

Sponsored Link

[MySQL]複数テーブルのUPDATE

  • 投稿日:
Tags:
MySQL
Categories:
プログラミング

複数テーブルをUPDATEするときは、ORDER BY もしくは LIMIT を使用することが出来ません。
一つのテーブルであれば使うことが出来ますので、使いたい場合は別々にUPDATEするしかないようです。

OKパターン

UPDATE
    `tbl1`, `tbl2`
SET
    `tbl1`.`field` = Val,
    `tbl2`.`field` = Val,
WHERE
    `tbl1`.`field` = Val AND
    `tbl2`.`field` = Val

NGパターン

UPDATE
    `tbl1`, `tbl2`
SET
    `tbl1`.`field` = Val,
    `tbl2`.`field` = Val,
WHERE
    `tbl1`.`field` = Val AND
    `tbl2`.`field` = Val
ORDER BY
    `tbl1`.`field1` DESC,
    `tbl1`.`field2` DESC,
    `tbl1`.`field3` ASC
LIMIT 3

下はorder by や limit を使うOKパターン

UPDATE
    `tbl`
SET
    `tbl`.`field` = Val
WHERE
    `tbl`.`field` = Val
ORDER BY
    `tbl`.`field1` DESC,
    `tbl`.`field2` DESC,
    `tbl`.`field3` ASC
LIMIT 3
« [MySQL]連番をUPDATEしたい[PHP]日付の比較 »

Sponsored Link

コメントする

記事の感想や修正依頼等ありましたら、コメントをお願いいたします