mysql查询 - 无法绕过它

时间:2012-12-20 12:08:09

标签: mysql select

我有这个跟踪文件下载的小脚本,目前我正在使用此查询获取结果:

SELECT file, COUNT(file) AS downloads 
FROM downloads 
WHERE file LIKE 'pfx_%' 
GROUP BY file
ORDER BY downloads DESC

对于每次新下载,我都会创建一个新行,我将文件名保存在一列中。 这带回了像

这样的东西
Filename01 | 1200
Filename02 | 100 
Filename03 | 256
...
Filename0x | 932

我现在遇到的问题是某些文件有Filename01_1.0和Filename01_1.1,Filename01_1.2等版本

是否可以获取这些版本并将它们计为一个文件名?

我希望它有道理:)

2 个答案:

答案 0 :(得分:3)

你可以这样做:

GROUB BY SUBSTRING_INDEX(file, '.', 1)

答案 1 :(得分:1)

SUBSTRING_INDEX() function是你的朋友:

SELECT SUBSTRING_INDEX(file, '_', 1) as file, COUNT(*) AS downloads 
FROM downloads 
WHERE file LIKE 'pfx_%' 
GROUP BY file
ORDER BY downloads DESC