在 MySQL 中,执行多个查询可能非常耗时。为了优化性能,最好将查询合并为一个查询。这是 Quan 提出的查询的关键:可以合并两个查询以返回更新的行吗?
第一个查询根据特定条件从表中选择行,而第二个查询则更新满足相同条件的行。组合这些查询需要一种允许在单个操作中进行读取和写入的技术。
一种方法是使用子查询。然而,Quan 遇到了这种方法的局限性。 https://gist.github.com/PieterScheffers/189cad9510d304118c33135965e9cddb 的建议中出现了替代解决方案:
SET @uids := null; UPDATE footable SET foo = 'bar' WHERE fooid > 5 AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) ); SELECT @uids;
此查询利用以下步骤:
此解决方案有效地结合了行更新和检索,在单个查询中提供所需的功能。
以上是如何在单个MySQL查询中实现行更新和检索?的详细内容。更多信息请关注PHP中文网其他相关文章!