假设情景如下:
user_table的字段如下:
keyword \t c_time \t heat
keyword是字符串的具有重复性的,c_time表示的是时间,heat是整形常数。
如下所示:
代码如下:
select keyword, max(created_at) as latest_created_at ,max(search_index) as
latest_publish_time from data_table where created_at > DATE_SUB(now(),INTERVAL '1:30'
HOUR_MINUTE) and keyword is not null and plateform_id=1 and search_index!=0 group by keyword
limit 10;
上面的代码,先使用group by keyword 将相同keyword分成同一个组,然后使用max(created_at)将最新的数据获取出来,会获取到唯一的数据;本来就已经能够得到一组唯一的数据了,但是又想获得search_index字段,所以要使用max(search_index),这样才能得到search_index字段。【这个是从group by数组中获得字段的一种方式啊,虽然明明知道max(search_index)是没什么意义的,但是必须要是函数获取字段才不会报错】。
然后使用:
created_at > DATE_SUB(now(),INTERVAL '1:30' HOUR_MINUTE)
上面的语句获取到当前时间一个半小时的数据之内的数据,mysql可以直接使用">","<"来比较时间,越往后时间越大。然后在使用
keyword is not null
语句,将keyword 不为空。
这样就获得数据了。