Mysql和PHP检查是否存在名称和最后联系日期

时间:2015-12-30 17:37:26

标签: php mysql

我的数据库中有多个姓名和日期,我正在寻找一种只查看个人姓名的方法,如果他们的最后联系日期超过6个月,则只显示该名称。< / p>

我知道如何使用以下方式查看条目一次:

$xyz= $db->query("SELECT * FROM dbname GROUP BY name"); 

我也知道如何使用以下方式查看不到6个月的日期:

if (strtotime($xyz['date']) <= strtotime("-6 months")) {
    do stuff;
}

但我无法想出一种方法来组合它们。

4 个答案:

答案 0 :(得分:3)

Canvas.Left/Top

答案 1 :(得分:2)

除了SKY的原创。回答,你想要MAX(最近的)日期是&lt; (早于)6个月。

您可能不需要使用此方法进行GROUP BY,因为只有一行应该具有最大日期。

SELECT * 
FROM dbname a
WHERE dateCol < DATE_SUB(now(), INTERVAL 6 MONTH) 
  AND dateCol = (SELECT MAX(dateCol)
                 FROM dbname b
                 WHERE b.name = a.name)

答案 2 :(得分:0)

看看这个小提琴:http://sqlfiddle.com/#!9/a581b/6

SELECT
  *
FROM
  dbname
WHERE 
  {YOUR_DATETIME_FIELD}  <= NOW() - INTERVAL 6 MONTH
GROUP BY 
  name

答案 3 :(得分:0)

如果用户姓名的最后联系日期超过6个月但不少于6个月之前,这将向您显示

SELECT name 
FROM dbname 
WHERE dateCol < DATE_SUB(now(), INTERVAL 6 MONTH) 
AND name NOT IN (SELECT name FROM dbname WHERE dateCol > DATE_SUB(now(), INTERVAL 6 MONTH))
GROUP BY name