gpt4 book ai didi

Mysql更新select语句的结果

转载 作者:行者123 更新时间:2023-11-29 22:46:05 24 4
gpt4 key购买 nike

我有两个连接的选择语句,我想交换它们的排名。我加入的选择语句是:

SELECT l.id, r.id, l.rank, r.rank, l.oldurl, r.oldurl, l.newurl, r.newurl
FROM (SELECT * FROM as795_sh404sef_urls WHERE newurl REGEXP 'Itemid\=108' AND rank<>0 GROUP BY oldurl HAVING MAX(id)) AS l
JOIN (SELECT * FROM as795_sh404sef_urls WHERE rank=0 GROUP BY oldurl) AS r
ON l.oldurl=r.oldurl;

我正在尝试创建一个更新语句,它将交换排名。只是说 l.rank 在所有情况下都应该变成 0 在这种情况下 r.rank 应该变成 l.rank

UPDATE (SELECT id FROM as795_sh404sef_urls WHERE rank=0 AND oldurl='zumba-gold-8.html' GROUP BY oldurl) r
JOIN (SELECT * FROM as795_sh404sef_urls WHERE newurl REGEXP 'Itemid\=108' AND rank<>0 AND oldurl='zumba-gold-8.html' GROUP BY oldurl HAVING MAX(id)) l
ON l.oldurl=r.oldurl
SET r.rank= l.rank, l.rank=0;

通过此更新语句,我发现 r 和 l 表无法更新。

最佳答案

来自documentation

目前,您无法更新表并在子查询中从同一个表中进行选择。也许这会在未来的版本中改变,但目前还没有。

关于Mysql更新select语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com