我有像这样的mysql表
id id_p name date
1 1 test1 2015-01-01
2 1 test1 2015-02-02
3 2 test2 2015-03-01
4 2 test2 2014-03-05
按日期选择
select name, date from table1 where date <= (now() - interval 6 month)
,结果是
name date
test1 2015-01-01
test1 2015-02-02
test2 2015-02-02
test2 2014-03-05
如何获得此结果如何限制
name date
test1 2015-01-01
test2 2015-02-02
谢谢你的帮助
答案 0 :(得分:1)
你应该使用GROUP BY
,这意味着你的字段需要正确设置,否则mysql不知道返回哪个值。在这种情况下,我将date
字段包裹在MIN
函数中,因为它似乎是您想要的最低/最早日期。
因此,在您的情况下,请修改查询,如下所示:
SELECT `name`, MIN(`date`) as `date`
FROM table1
WHERE `date` <= (now() - interval 6 month)
GROUP BY `name`