2011-03-14 4 views
2

コードは大変ですが...MySqlのMAX()での更新

同じステートメントでMAX()関数を使用してUpdateを使用するにはどうすればよいですか? NOW UPDATEメッセージSET myTime =()ユーザー= 'ユーザ名' AND 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は奇妙な:)ですが、答えは次のとおりです。

ような何かをnice – Unreason

+0

@Unreason:oracleのクエリーはほぼ同じですが(「LIMIT」ではなく「rownum = 1」) – zerkms

+0

ありがとうございます。今私はどこかでこのトリックについて読むことを覚えています.... – Alqin