我将制作更新系统,我想从数据库中获取文件更新。
请求应该给我所有文件,但如果有多个行具有相同的文件名,我只希望这个具有最高值"版本" (数)
因此响应中的文件名将是唯一的。
(真的很抱歉,我不知道怎么说)
答案 0 :(得分:1)
如果file_version仅用于演示目的而且没有关系值,则可以执行以下操作:
select filename, max(file_version) as file_version
from your_table
group by filename;
否则,如果file_version必须与filename相同,那么你可以这样做:
select distinct a.filename, a.file_version
from your_table a
join (select filename, max(file_version) as file_version
from yourtable
group by filename) b
on b.filename = a.filename
and b.file_version = a.file_version
order by a.filename;
答案 1 :(得分:1)
GROUP BY
会产生性能影响。如果只需要一行
LIMIT 1
SELECT
file,
file_version
FROM
file_history
WHERE
file = 'filename'
AND file_version < 5
ORDER BY file_version DESC
LIMIT 1
您应该向file_version
列添加索引,以使此查询最佳。