Mysql 选择彼此在特定时间范围内的时间戳记录

Mysql 选择彼此在特定时间范围内的时间戳记录,mysql,sql,Mysql,Sql,您将如何在彼此之间的一定时间内选择时间戳记录 应用和寻求的解决方案: 我有一个记录点击的表,我想通过,并找到从同一个IP在一定时间内发生的点击 e、 g.:选择所有ip地址,其中5个或5个以上相同ip地址发生/分组在/时间戳内,彼此相隔10分钟您可以选择这样的记录 $recorddate = date("Y-m-d"); SELECT * FROM table WHERE date > UNIX_TIMESTAMP('$recorddate'); $starttime = "2012-0

您将如何在彼此之间的一定时间内选择时间戳记录

应用和寻求的解决方案:

我有一个记录点击的表,我想通过,并找到从同一个IP在一定时间内发生的点击


e、 g.:选择所有ip地址,其中5个或5个以上相同ip地址发生/分组在/时间戳内,彼此相隔10分钟

您可以选择这样的记录

$recorddate = date("Y-m-d");
SELECT * FROM table WHERE date > UNIX_TIMESTAMP('$recorddate');
$starttime = "2012-08-30 19:00:00";
$endtime   = "2012-08-30 19:10:00";
SELECT * FROM table WHERE date >= UNIX_TIMESTAMP('$starttime') AND date <= UNIX_TIMESTAMP('$endtime') ;
UNIX_TIMESTAMP函数将日期转换为时间戳。您可以轻松地在查询中使用它

如果你想在10分钟的时间间隔内获得记录,你可以做类似的事情

$recorddate = date("Y-m-d");
SELECT * FROM table WHERE date > UNIX_TIMESTAMP('$recorddate');
$starttime = "2012-08-30 19:00:00";
$endtime   = "2012-08-30 19:10:00";
SELECT * FROM table WHERE date >= UNIX_TIMESTAMP('$starttime') AND date <= UNIX_TIMESTAMP('$endtime') ;
$starttime=“2012-08-30 19:00:00”;
$endtime=“2012-08-30 19:10:00”;

从date>=UNIX\u时间戳(“$starttime”)和date的表中选择*您可以这样选择记录

$recorddate = date("Y-m-d");
SELECT * FROM table WHERE date > UNIX_TIMESTAMP('$recorddate');
$starttime = "2012-08-30 19:00:00";
$endtime   = "2012-08-30 19:10:00";
SELECT * FROM table WHERE date >= UNIX_TIMESTAMP('$starttime') AND date <= UNIX_TIMESTAMP('$endtime') ;
UNIX_TIMESTAMP函数将日期转换为时间戳。您可以轻松地在查询中使用它

如果你想在10分钟的时间间隔内获得记录,你可以做类似的事情

$recorddate = date("Y-m-d");
SELECT * FROM table WHERE date > UNIX_TIMESTAMP('$recorddate');
$starttime = "2012-08-30 19:00:00";
$endtime   = "2012-08-30 19:10:00";
SELECT * FROM table WHERE date >= UNIX_TIMESTAMP('$starttime') AND date <= UNIX_TIMESTAMP('$endtime') ;
$starttime=“2012-08-30 19:00:00”;
$endtime=“2012-08-30 19:10:00”;

从表中选择*,其中date>=UNIX_TIMESTAMP(“$starttime”)和date决定不对原始数据进行单一查询

与朋友讨论后,再阅读有关内存引擎和PHP Memcatch的选项;我决定使用一个常规表来记录使用生存时间时间戳的点击次数。传递该时间戳后,将分配一个新的ttl,并重新设置计数。 有一件事是,对于我的应用程序,我不能确切地确定参数配置设置将持续多长时间——如果它们更大,并且内存被清除,那么事情就会重新开始

如果它是在用户链接点击上运行的,那么它不是一个完美的解决方案,但是它应该能够很好地捕捉点击欺诈风暴,并完成这项工作

一些管理PHP/MySQL代码(“Drupalized查询”):


决定不尝试对原始数据进行单一查询

与朋友讨论后,再阅读有关内存引擎和PHP Memcatch的选项;我决定使用一个常规表来记录使用生存时间时间戳的点击次数。传递该时间戳后,将分配一个新的ttl,并重新设置计数。 有一件事是,对于我的应用程序,我不能确切地确定参数配置设置将持续多长时间——如果它们更大,并且内存被清除,那么事情就会重新开始

如果它是在用户链接点击上运行的,那么它不是一个完美的解决方案,但是它应该能够很好地捕捉点击欺诈风暴,并完成这项工作

一些管理PHP/MySQL代码(“Drupalized查询”):


但是,如果他想要的10条记录在范围的开始,该怎么办?@X-Zero jmhead可以限制查询,并且可以按用户的顺序进行排序。我认为这个答案就足够了。+1-你的第二个答案更接近我的想法,尽管通常范围应该是包含下限的-
=
(和你在这里所做的上限独占)。谢天谢地,您避免了在
之间使用
(特别是考虑到时间戳的使用…)嗯,不确定这是否合适,因为要获得日期,您首先必须执行一个查询或一系列查询以获取开始和结束时间。我不知道时间是什么,我只想能够选择所有的日期都是x时间段,无论时间窗口如何。具体来说,我正在做的是,我有一个链接点击表,我想知道有多少是从相同的IP地址在一定的时间内。看来我可能需要多次查询才能得到我想要的信息。@jmhead如果你编辑你的主题并准确地告诉你想要什么,我们可以帮助你。我们只需要一个查询。但首先,我们完全理解你。但是如果他想要的10条记录在范围的开始处呢?@X-Zero jmhead可以限制查询,他可以按用户的顺序进行排序。我认为这个答案就足够了。+1-你的第二个答案更接近我的想法,尽管通常范围应该是包含下限的-
=
(和你在这里所做的上限独占)。谢天谢地,您避免了在
之间使用
(特别是考虑到时间戳的使用…)嗯,不确定这是否合适,因为要获得日期,您首先必须执行一个查询或一系列查询以获取开始和结束时间。我不知道时间是什么,我只想能够选择所有的日期都是x时间段,无论时间窗口如何。具体来说,我正在做的是,我有一个链接点击表,我想知道有多少是从相同的IP地址在一定的时间内。看来我可能需要多次查询才能得到我想要的信息。@jmhead如果你编辑你的主题并准确地告诉你想要什么,我们可以帮助你。我们只需要一个查询。但首先我们完全理解你。