WEB开发网
开发学院数据库MySQL Mysql的distinct语句和group by,order by 阅读

Mysql的distinct语句和group by,order by

 2007-09-17 10:58:46 来源:WEB开发网   
核心提示:最近,在做一个项目的时候,Mysql的distinct语句和group by,order by,发现得出的数据于预料的相差很多,仔细的研究了一下,对,我需要的结果就是提取com_id唯一的最近10条com_id的记录,发现问题出在distinct语句和groupyby,orderby首先

最近,在做一个项目的时候,发现得出的数据于预料的相差很多,仔细的研究了一下,发现问题出在distinct语句和groupyby,orderby

首先,distinct语句,获得非重复的(唯一)行记.

grouyby是分组,orderby是排序。

直接看我的例子。

假定我有一个表f_job,有字段:

selectjob_id,com_id,job_timefromf_job orderbyjob_timedesclimit10; Te:webwebphpfhr  ee.txt
+--------+--------+---------------------+
|job_id|com_id|job_time      |
+--------+--------+---------------------+
| 5060| 2205|2006-09-2916:30:11|
| 4707| 19084|2006-09-2916:27:55|
| 4708| 19084|2006-09-2916:27:55|
| 4709| 19084|2006-09-2916:27:55|
| 4710| 19084|2006-09-2916:27:55|
| 4711| 19084|2006-09-2916:27:55|
| 4859| 19084|2006-09-2916:27:55|
| 4918| 19084|2006-09-2916:27:55|
| 5059| 2205|2006-09-2916:27:22|
| 4078| 2715|2006-09-2916:18:36|
+--------+--------+---------------------+
10rowsinset(0.03sec)

还有其他字段,不可能影响结果.此处不列出。

job_id是primarykey。com_id是外键,我需要按照时间来排序。所以必须使用orderby!

你看到了com_id在得出的结果中不唯一,对,我需要的结果就是提取com_id唯一的最近10条com_id的记录,而已。

我就以以前的MSSQL的经验写如下的语句执行:

mysql>selectdistinct(com_id)fromf_job orderbyjob_timedesclimit10; Te:webwebphpfhr  ee.txt
+--------+
|com_id|
+--------+
| 19084|
| 2197|
| 19917|
| 19580|
| 19520|
| 19664|
| 19397|
| 19900|
| 1176|
| 19449|
+--------+

1 2 3  下一页

Tags:Mysql distinct 语句

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接