1

ファイルのダウンロードを追跡するこの小さな PHP スクリプトがあり、現在、次のクエリで結果を取得しています。

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

新しいダウンロードごとに、ファイル名を1列に保持する新しい行を作成します。これは次のようなものを返します

ファイル名01 | 1200
ファイル名02 | 100
ファイル名03 | 256
...
ファイル名 0x | 932

私が今抱えている問題は、一部のファイルに Filename01_1.0 や Filename01_1.1、Filename01_1.2 などのバージョンがあることです。

これらのバージョンを取得して、1 つのファイル名としてカウントすることはできますか?

私はそれが理にかなっていることを願っています:)

4

2 に答える 2

3

あなたは次のようにすることができます:

GROUB BY SUBSTRING_INDEX(file, '.', 1)
于 2012-12-20T12:13:28.780 に答える
1

SUBSTRING_INDEX()関数はあなたの友達です:

SELECT SUBSTRING_INDEX(file, '_', 1) as file, COUNT(*) AS downloads 
FROM downloads 
WHERE file LIKE 'pfx_%' 
GROUP BY file
ORDER BY downloads DESC
于 2012-12-20T12:13:12.677 に答える