如何在单个mysql查询中集成日期检查功能?

时间:2010-07-14 08:00:55

标签: php mysql

这是我目前的职能:

$result = $db->sql_query("SELECT * FROM data1,data2,data3,data4 WHERE person='" .$name. "'");

$row = $db->sql_fetchrow($result);
$day = $row['regtime'];
$days = (strtotime(date("Y-m-d")) - strtotime($row['regtime'])) / (60 * 60 * 24);
if($row > 0 && $days < 15){

$row = ['name'];
$row = ['age'];

//etc

但是上面的函数会在regtime行中进行双重读取。我正在寻找的是我可以将这两种功能都集成到单个查询中吗?如果是的话怎么样?

2 个答案:

答案 0 :(得分:1)

您是说您只想要结果集中过去15天的行吗?

您没有包括如何加入data1-4表,并且您的person字段对SQL注入是开放的,所以我将这些部分保留下来,但下面包含了过滤掉的方法仅过去15天的记录:

  SELECT * 
    FROM data1
   WHERE person = :name
     AND regtime >= NOW() - INTERVAL 15 DAY

答案 1 :(得分:0)

目前,此功能只有一个查询。如果您的摘录中没有遗漏,则没有双重查询。如果你的意思是你使用两次$ row ['regtime'],那就是数组读取而不是查询。