1

dbに各ログインセッションが日時スタンプ(DATETIME列)とともに保存されている場合に、ユーザーがログインした明確な日数を取得する方法に頭を悩ませようとしています。例えば:

USERID | TIME | BOUGHT  
--------------------------
4 | 2012-07-16 04:44:52   | 3
4 | 2012-07-16 04:45:52   | 2  
5 | 2012-07-16 04:54:52   | 5
4 | 2012-07-18 04:44:52   | 3
4 | 2012-07-18 04:45:52   | 2  
4 | 2012-07-21 04:54:52   | 5

ユーザー4がサイトから購入した回数を検索したいのですが、クエリは3を返すはずです(ユーザー4が合計3日間サイトにアクセスしたため)。PHP / MYSQLの組み合わせを使用する必要がありますか、それともSQLで使用できますか?

4

1 に答える 1

3
SELECT USERID, COUNT(DISTINCT DATE(TIME)) FROM my_table GROUP BY USERID

sqlfiddleでそれを参照してください。

于 2012-12-21T18:12:14.093 に答える