
Sponsored Link
[MySQL]複数テーブルのUPDATE
複数テーブルを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