2016-07-28 64 views
-1

我用兩個請求:Mysql的更新和選擇第一要素

SELECT `user` FROM `table1` ORDER BY `last activity` ASC LIMIT 0,1; 

UPDATE `table1` SET `last activity` = CURRENT_TIMESTAMP WHERE `user` = 'user' 

我想加盟無論是在只有一個要求..因爲有兩個程序往往採取相同的用戶。

編輯:我忘記說了,我需要的用戶名,所以只更新的第一個元素是遠遠不夠的。我想將用戶與上次活動,更新時間,和我的程序做一些與此用戶。問題是許多程序正在同時運行。而且重要的是不要在他們兩個請求

回答

0

這聽起來之間同時喜歡你正在尋找一個subquery訪問相同的用戶。

這將是這個樣子:

UPDATE `table1` 
    SET `last activity` = CURRENT_TIMESTAMP 
    WHERE `user` = (SELECT `user` FROM `table1` 
     ORDER BY `last activity` ASC LIMIT 0,1) 
+0

不能從你正在更新同一表中選擇 – e4c5

+0

哦,對了,忘了說一秒鐘。那豈不是可能的,如果你想給表的別名('表作爲t1')? – nbokmans

+0

不是子查詢。更新連接可能沒有嘗試過 – e4c5