首页 » MySQL » 关于MySQL的一些查询方法——子查询、MySQL中函数的使用

关于MySQL的一些查询方法——子查询、MySQL中函数的使用

 

这几天在学习PHP的过程中,操作数据库时用到很多麻烦的、不容易理解的(至少我现在的情况)知识,现在把用到的方法记录下来,方便以后忘了重新复习。

先把本文中要用到的几张表的结构贴出来。

nav导航表

content文章表

comment评论表

首先写一个今晚刚学的,感觉是这几天里最难的一个查询方法。

其逻辑是,先筛选出前四个主导航的id,也就是nav表中的pid字段值为0的记录(pid为其上一级导航的id,值为0说明没有上一级导航),然后用一个循环,这里用到一个子查询,通过循环传进来的主导航的id,查询出nav表中主导航下的子导航(也就是nav表中pid的值为传进来的主导航的id的值的记录),然后查询content表中的nav字段的值在刚刚的子查询筛选出来的子导航的id值的序列里面的记录(content表中nav的值存放的是nav表中对应属于子导航的id的值,网站设计的主导航下不能有文章,文章只能存放在子导航下),用到的代码如下:

sql代码

PHP代码

然后再一个就是之前没接触过的,查询本月评论最多的7条记录的方法。

逻辑是,用MySQL中的MONTH()、NOW()函数,获取到当前的月份,然后再用DATE_FORMAT()函数截取到记录中date字段里的值的月份,进行比较,如果相同的话就筛选出来,然后用一个子查询进行排序(比较简单,不赘述),然后返回给后台调用这个函数的变量,进行下一步操作。

下面给出sql代码

PS:关于上文中用到的MONTH()、NOW()、DATE_FORMAT()函数的使用请自行查找手册。

以上就是这几天遇到的比较难懂的数据库的查询方法。

 

原文链接:关于MySQL的一些查询方法——子查询、MySQL中函数的使用,转载请注明来源!

1