更新列值为True且时间戳列为MAX

时间:2015-03-12 16:53:58

标签: mysql sql sql-server sql-update

我想更新boolean列值为True的单个最新行。

boolvaltimestamp是我在表格中的两列。

boolval  timestamp
--------------------------------
True     1998-01-02 00:00:00.000    
False    1999-01-02 00:00:00.000    
False    2000-01-02 00:00:00.000    
True     2001-01-02 00:00:00.000 --(Given this data, I want to update this row)    
False    2006-01-02 00:00:00.000 

考虑这个伪代码我想做什么..

UPDATE tablename SET boolval='False' WHERE boolval='True' AND timestamp IS MAX;

AND timestamp IS MAX语法不正确,导致语句无效。

1 个答案:

答案 0 :(得分:5)

UPDATE Table1 
SET boolval='False' 
WHERE boolval='True' 
AND timestamp = (SELECT MAX(timestamp) FROM Table1 where boolval='True');