2011-03-14 40 views
2

代码波纹管的伟大工程,但...更新与MAX()在MySQL

我怎样才能在相同的语句中使用更新与MAX()函数?

喜欢的东西:UPDATE消息SET数值指明MyTime = NOW(),其中用户= '用户名' 和数值指明MyTime = MAX(myTimp)

SELECT @myId:=(SELECT id FROM Msg 
WHERE myTime=(SELECT MAX(myTime) FROM Msg 
WHERE user='username')); 

UPDATE Msq SET myTime=NOW() 
WHERE [email protected]; 

回答

8
UPDATE Msg 
    SET myTime=NOW() 
    WHERE user='username' 
ORDER BY myTime DESC 
    LIMIT 1 
+0

+1,是mysql的怪异:),但得到的答复是不错 – Unreason

+0

@Unreason:对于oracle的查询将几乎相同;-)(但用'rownum = 1'而不是'LIMIT') – zerkms

+0

谢谢。现在我记得在某个地方阅读了这个技巧...... – Alqin