2012-08-10 64 views
-2

示例MySQL;如何计算过去24小时内创建的注册表?

username work date(TIMESTAMP) 

x  1 2012-08-08 12:15:33 
x  3 2012-10-08 12:11:33 
x  4 2012-08-08 11:15:33 
x  2 2012-07-08 12:15:33 

我想用一条规则来控制;

X只能在24小时内完成3个工作的mysql注册表。

我找不到真正的MySQL命令。 如何通过MySQL和php来控制?

+0

你可以尝试改述你的问题吗?很难理解你的意思。 – Ashe 2012-08-11 05:52:53

回答

3

这会给你算超过3

select username from table 
where date>=dateadd(current_date+interval -1 day) 
group by username 
having count(*)>3 
+0

@Slavez时,它给出语法错误您需要更改查询以适合您的数据库需求。 'table'表和'date'字段就是典型的答案。 – Whisperity 2012-08-10 11:56:48

+0

当我尝试时,它总是给出错误,所以我给你发送了我的mysql表格图像,也许这可以提供帮助。 http://666kb.com/i/c69hhgneis16umdgh.png – Slavez 2012-08-10 11:57:48

+0

表名:kupon – Slavez 2012-08-10 11:58:22

1

这将返回有多少职位被在最后一天,用户“X”设置:

select count(*) as jobCount from yourTable where date>=date_sub(now(), 1 day) and userName='x' 

放置一个新的工作时看到,如果用户在列表和jobCount是您可以检查至少3

+0

当我尝试使用我的值 select count(*)as jobCount from kupon where syntax> = date_sub(now(),1 day)和isim ='slavez' – Slavez 2012-08-10 11:52:19

0

我认为这是你在找什么:

SELECT username , COUNT(1) AS cnt 
FROM table_name 
WHERE `date` >= DATE_SUB(CURRENT_DATE, INTERVAL 1 day), 
GROUP BY username 
HAVING cnt <= 3; 
+0

给语法错误:( – Slavez 2012-08-10 11:52:57

+0

它应该工作,你可以发布错误? – Omesh 2012-08-10 13:26:42

相关问题