1. ホーム
  2. php

[解決済み] MySQLで最終更新行のIDを取得する方法は?

2022-04-30 13:27:29

質問

PHPを使って、MySQLの最終更新行のIDを取得するにはどうすればよいですか?

どのように解決するのですか?

この問題に対する答えが見つかりました :)

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;

EDIT by aefxx

この手法をさらに拡張して、update文の影響を受けるすべての行のIDを取得することができます。

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

これは、すべてのIDをコンマで連結した文字列を返します。