更新select语句的结果

时间:2015-03-17 14:25:53

标签: mysql sql sql-server regex

我设法创建了一个连接选择语句

SELECT l.rank, r.rank
        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;

我需要的是交换排名。每次UPDATE成为l.rankr.rank的另一个单词r.rank将成为l.rank

例如,如果在第一行中,第一个选择的结果是0,第二个选择2.我希望在更新之后它将是另一种方式,首先是2和第二个。

我希望它有任何意义。

1 个答案:

答案 0 :(得分:0)

我不确定你正在寻找什么,但是这样吗?你不想要一个&#34; Select *&#34;在更新中的select语句上,但是选择ID。然后,您将拥有要从中更新的ID列表。我所做的是修复更新语法(假设MS-SQL)并给出一个id列表,仅供查看。假设你已经做到了这一点,我单独留下你的选择标准。 :)

Set Rank = 0 where id in (SELECT id FROM as795_sh404sef_urls WHERE newurl REGEXP 'Itemid\=108' AND rank<>0 AND oldurl='zumba-gold-8.html' GROUP BY oldurl HAVING MAX(id))