首页 >数据库 >mysql教程 >**如何在 MySQL 中执行 UPDATE 查询后从受影响的行中检索数据?**

**如何在 MySQL 中执行 UPDATE 查询后从受影响的行中检索数据?**

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 08:52:02390浏览

**How to Retrieve Data from Affected Rows After an UPDATE Query in MySQL?**

在 MySQL 中结合 SELECT 和 UPDATE 查询进行受影响的行数据检索

MySQL 提供了强大的查询功能,包括执行复杂操作的能力。一种常见的场景涉及组合 SELECT 和 UPDATE 查询来检索受更新操作影响的数据。这种方法可以简化处理并消除对单独查询的需要。

在这种特殊情况下,目标是组合两个查询:一个根据特定条件获取数据的 SELECT 语句和一个修改匹配行的 UPDATE 语句。通过合并这些查询,目的是在单个操作中获取更新的行数据。

最初,用户尝试使用子查询,但没有达到预期的结果。这促使人们探索替代方法,包括不使用子查询直接组合 SELECT 和 UPDATE。

解决方案:利用 SET 和 SELECT 技术

发现了一个资源丰富的解决方案通过外部研究:通过采用 SET 和 SELECT 技术,可以达到预期的结果。提供的代码片段演示了这种方法:

<code class="sql">SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;</code>

此解决方案采用以下步骤:

  • 将变量 @uids 初始化为 null。
  • 更新 footable通过将 fooid 大于 5 的行的 foo 列设置为“bar”。
  • 在 UPDATE 查询中,子查询将更新的 fooid 值分配给变量 @uids。
  • 最后, SELECT 查询检索 @uids 变量,该变量现在保存受影响的 fooid 值的逗号分隔列表。

以上是**如何在 MySQL 中执行 UPDATE 查询后从受影响的行中检索数据?**的详细内容。更多信息请关注PHP中文网其他相关文章!

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