文字列型の列に一時的な値を格納するべきではありません。最初に DATE 列を MySQL のDATE
型に変換することをお勧めします。
ALTER TABLE comments ADD COLUMN new_date DATE AFTER `DATE`;
UPDATE comments SET new_date = STR_TO_DATE(`DATE`, '%d/%m/%y');
ALTER TABLE comments DROP COLUMN `DATE`;
(明らかに、この新しい列を使用するには、アプリケーション コードを更新する必要があります)。
それで:
2012 年のレコードのみを選択するにはどうすればよいですか
フィルターで不等式演算子を使用するだけです。
SELECT *
FROM comments
WHERE new_date BETWEEN '2012-01-01' AND '2013-01-01'
2012 年の平均コメント数を取得しますか?
「平均コメント数」の意味が完全にはわかりませんが、1 日あたりの平均コメント数が必要な場合:
SELECT COUNT(*) / DATEDIFF('2013-01-01', '2012-01-01')
FROM comments
WHERE new_date BETWEEN '2012-01-01' AND '2013-01-01'