在' ROWorder'中设置值作为' ROWorder'中的最高价值+ 1

时间:2017-04-24 19:13:33

标签: mysql

这是我的查询,它并没有中断 - 但它也不起作用。谁能告诉我我做错了什么?

$sql_query="UPDATE requests 
            SET Playlisted=1, 
                ROWorder=(SELECT MAX(ROWorder) + 1) 
            WHERE IDrequests=".$_GET['Playlisted_id'];

1 个答案:

答案 0 :(得分:1)

您需要在子查询中进行聚合:

UPDATE requests r CROSS JOIN
       (SELECT MAX(ROWorder) as maxro FROM requests) rr
    SET Playlisted = 1,
        ROWorder= maxrr  + 1
    WHERE IDrequests = ".$_GET['Playlisted_id'];

那应该解决语法问题。代码应该做什么并不是很明显。通常,使用insert列在auto_increment上处理此类操作,但您可能还有其他一些用例。