【mysql】获取mysql中不重复的数据

假设情景如下:

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 不为空。

这样就获得数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯拿铁go

你的打赏是我更新最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值