在mysql 5.0中将文件与REGEX进行比较

时间:2011-05-24 13:24:39

标签: mysql regex select count

我想这样一个嵌套的mysql请求,它计算每天的动作,如下所示:

SELECT `timestamp` AS `date`, 
  (SELECT COUNT('id') 
   FROM `actions` WHERE `timestamp` = `date`) AS `action_num`  
FROM `actions`;  

如果不是这样我需要计算每一天,而且我得到的是每个时间戳,那将会很有效。如果它只是一个日期它将起作用。所以我想如果我可以从字符串中取出日期并进行比较,这可能有用:

SELECT `timestamp` AS `date`, 
  (SELECT COUNT('id') FROM `actions` 
   WHERE `timestamp` REGEXP '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}' = `date`
   REGEXP '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}') AS `action_num`  
FROM `actions`;

但它不起作用。

如何直接在MySQL中比较两个时间戳字段中的日期?

谢谢

2 个答案:

答案 0 :(得分:1)

非常简单,内部查询应该是:

SELECT count(id) FROM actions 
WHERE DATE(`timestamp`) = DATE(`date`) as action_num

请参阅:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date

答案 1 :(得分:0)

您可以使用DATEDIFF()函数来比较MySQL中的日期, 和TIMESTAMPDIFF()用于比较时间戳,DATE()从时间戳获取日期信息 MySQL's reference manual pages中提供了更多日期和时间函数和示例。