MySQLで最後に更新された行のIDを取得するにはどうすればいいですか? 質問する

MySQLで最後に更新された行のIDを取得するにはどうすればいいですか? 質問する

PHP を使用して MySQL で最後に更新された行の ID を取得するにはどうすればよいですか?

ベストアンサー1

この問題の答えを見つけました:)

SET @update_id := 0;
UPDATE some_table SET column_name = 'value', id = (SELECT @update_id := id)
WHERE some_other_column = 'blah' LIMIT 1; 
SELECT @update_id;

編集aefxx より

この手法をさらに拡張して、更新ステートメントによって影響を受けるすべての行の ID を取得することもできます。

SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;

すべての ID がコンマで連結された文字列が返されます。

おすすめ記事