mysql结果去重和条件查询where的使用

昨天介绍了mysql里面的输出函数,小编觉得日期函数属于见的比较多的,mysql怎么输出当前时间的,我们可以用到now这个函数;效果如下

mysql结果去重和条件查询where的使用

mysql输出当前时间

下面扩展一下mysql里面格式化时间戳的常用函数

mysql结果去重和条件查询where的使用

获取前一天日期

select date_sub(curdate(),interval 1 day) 获取前一天日期;

select date_sub(curdate(),interval 1 year) 获取上一年日期;

select date_sub(curdate(),interval 1 month) 获取上个月日期;

SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 0 year)) 获取当前年份;

SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 1 year)) 获取上一年份;

SELECT month(DATE_SUB(CURDATE(),INTERVAL 0 month)) 获取当前月份;

SELECT month(DATE_SUB(CURDATE(),INTERVAL 1 month)) 获取上一月份;

SELECT day(DATE_SUB(CURDATE(),INTERVAL 0 DAY)) 获取当前几号;

SELECT day(DATE_SUB(CURDATE(),INTERVAL 1 DAY)) 获取前一天几号;

有兴趣的朋友可以都输入一下看看代码运行结果,后期在项目中经常会用到,比如统计出这个月文章阅读最多的文章,或者上周文章点击最好的数据。等等

下面介绍今天的话题,在mysql查询结果中去重,比如一个表中字段关系是一对多,或者多对多的关系。我们需要用到关键词DISTINCT

实际运用到的案例在项目中一个ip访问多次你的网站,但是结果里面不需要看到重复的ip,这个时候DISTINCT就需要排上用处了。

我们上demo实际运行一下。

mysql结果去重和条件查询where的使用

日志表

比如这个log表,我们需要查询出哪些ip有出现过。属于命令SELECT DISTINCT ip FROM v9_log;

mysql结果去重和条件查询where的使用

mysql执行结果

这样我们就查询出了不同的ip出现的结果。

mysql结果去重和条件查询where的使用

mysql结果去重和条件查询where的使用

执行完毕提示有156行受到影响,说明有156条数据,我们也可以用统计函数count进行得出需要的数据

mysql结果去重和条件查询where的使用

mysql结果去重和条件查询where的使用

觉得数据显示的太多,只需要显示最前面10条数据,或者时间最新的10条等等 这时候就需要用到where的条件查询了。我们看看demo

mysql结果去重和条件查询where的使用

mysql结果去重和条件查询where的使用

我们可以看到使用了where 和 limit的应用,还可以扩展行转列,某一段时间某个ip出现的最多等等复杂的写法,这些就构成了一些网站功能的实现,有时候也可以在程序php或是asp里面进行处理。比如msyql或者的结果有相同的数据,php数组里面有去重函数也是实现目标的一种方式,或者根据mysql获取的结果进行重新整合使用各种函数的处理得到一个星期点击最多的ip等等。可以扩展的很深很深。今天的内容就介绍到这里。有兴趣的朋友可以把上面说的内容都实现哦。


分享到:


相關文章: