2016-07-23 96 views
0

我想这样做。更新值来自同一表的最大值

update cart set productname='hey' where cartid=(select max(cartid) from cart) 

但是,sql显示错误,其中表'cart'被定义两次。我如何解决这个问题?

回答

2

在MySQL中,你可以使用updatelimit

update cart 
    set productname = 'hey' 
    order by id desc 
    limit 1; 

您可以查看文档here

如果你要计算的值,你可以使用一个join

update cart c join 
     (select max(id) as maxid from card) cc 
     on c.id = cc.maxid 
    set productname = 'hey'; 

这将是特别有用的,如果多行能有最大的ID和你想要的所有更新。

+1

神圣的废话谢谢!你拯救了我的两次生命!你是sql的主人!但是,似乎连接方法不适合我。但限制方法效果很好!无论如何非常感谢! :) – Marcus