首页  >  文章  >  数据库  >  如何在没有子查询的情况下在 MySQL 中更新行并获取更新的 ID?

如何在没有子查询的情况下在 MySQL 中更新行并获取更新的 ID?

Barbara Streisand
Barbara Streisand原创
2024-10-26 20:31:02550浏览

How to Update Rows and Get Updated IDs in MySQL Without a Subquery?

在 MySQL 中组合 SELECT 和 UPDATE 查询

将 SELECT 和 UPDATE 查询组合到单个操作中对于优化数据库性能非常有用。在这种情况下,用户希望组合以下查询:

SELECT * FROM table WHERE group_id = 1013 and time > 100;
UPDATE table SET time = 0 WHERE group_id = 1013 and time > 100

虽然子查询方法可能无法提供所需的结果,但有一个解决方案可以在没有子查询的情况下实现目标。此解决方案涉及使用用户定义的变量 (@uids) 来存储更新的行 ID:

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

以上是如何在没有子查询的情况下在 MySQL 中更新行并获取更新的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn