sql >> データベース >  >> RDS >> Mysql

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;
    

    編集 aefxxによる

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

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

    これにより、すべてのIDがカンマで連結された文字列が返されます。



    1. MySQLで先頭の空白を削除する方法

    2. MySQLとMariaDBの容量計画-ストレージサイズのディメンション化

    3. =nullとISNULLの違いは何ですか?

    4. SQLServerのSalesforceSOQL