首先对结果进行排序然后按mysql中的结果集进行分组

时间:2013-07-30 11:45:10

标签: mysql

我的数据库是

 id  fileId version
   1  1       1.0
   2  1       1.1
   3  2       1.0
   4  2       1.1
   5  2       1.12

所需的结果集是

   id   fileId version
    2    1       1.1
    5    2       1.12

我尝试这个“选择不同的fileId,来自tablename order by fileId desc的版本”

2 个答案:

答案 0 :(得分:3)

我想你想要:

select fileid, max(version)
from t
group by fileid;

答案 1 :(得分:0)

SELECT f1.id, f1.fileID, f1.version
FROM files AS f1
LEFT JOIN files AS f2 
ON f1.fileID = f2.fileID
AND f1.version < f2.version 
WHERE f2.fileID IS NULL

另外,为了提高速度,建议在id和fileID上使用索引

ALTER TABLE `files` ADD INDEX ( `id` ) 
ALTER TABLE `files` ADD INDEX ( `fileID` )