2016-10-06 24 views
0

我有兩個表用戶和活動。PHP Mysql檢查endtime小於2.50小時並更新記錄

用戶表具有字段如下

id, data_limit 
1  50 
2  180 
3  180 

活動表具有字段如下

campaign_id, user_id, end_datetime 
    1    1   2016-10-06 09:05:10 
    2    1   2016-10-04 10:05:10 
    3    2   2016-10-06 13:05:10 
    4    2   0000-00-00 00:00:00 
    5    3   2016-10-06 13:05:10 

我要求

增加DATA_LIMIT用戶表中的至200時end_datetime在廣告系列表距離當前時間少於2.50小時。 行動必須在最新end_datetime被perfomed(DESC)

在這裏示例數據,查詢必須與USER_ID 1的值2016年10月6日9時05分10秒只end_datetime檢查,原因是其最新的是end_datetime

回答

0

請嘗試此查詢:

update tbluser u, (select u.id from tbluser u1 left join campaigntbl c on c.user_id =u1.id 
group by c.user_id having ADDTIME(max(c.end_datetime), '2:30') < now()) as tbl set u.data_limit = u.data_limit + 200 where u.id=tbl.id 
+0

#1111 - 無效使用組功能的錯誤 –

+0

#1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第3行的ADDTIME(max(c.end_datetime),'2:30')

+0

現在嘗試這個。 –