3

最も訪問した日付を表示するのにいくつか問題があります。データベースでの表示は次のとおりです。

date_firstvisit
2012-11-25 15:49:16
2012-11-21 17:42:40
2012-11-21 15:36:04
2012-11-20 07:39:11
2012-11-19 09:19:36
2012-11-15 23:03:24
2012-11-15 22:57:47
2012-11-15 03:10:20
2012-11-15 03:10:14

このSQLクエリは出力する必要2012-11-15がありますが、出力するのは次の0000-00-00とおりです。

SELECT date_firstvisit FROM visitors
GROUP BY DATE(date_firstvisit)
ORDER BY COUNT(date_firstvisit) DESC
LIMIT 1

交換SELECT date_firstvisit FROM visitorsするSELECT * FROM visitorsと印刷され2012-11-28ます。もちろんこれは間違っています!

SQLクエリの何が問題になっているのかわからないので、今お聞きしますが、何か見落としていませんか?

編集

このコードは、データをWebサイトに印刷する方法を示しています。njkによると、このSQLは正しいですが、印刷を続けるだけ0000-00-00です。

$get_mostactive_date = $sql->query("SELECT DATE(date_firstvisit), COUNT(date_firstvisit) FROM visitors GROUP BY DATE(date_firstvisit) ORDER BY COUNT(date_firstvisit) DESC LIMIT 1");
$mostactive_date = $get_mostactive_date->fetch(PDO::FETCH_ASSOC);

echo $mostactive_date['date_lastactive'];

前もって感謝します。

4

2 に答える 2

5

これにより、合計訪問数が同じ最大数の日付が表示されます

SELECT DATE(date_firstvisit) Dates, COUNT(*) totalCount
FROM visitors
GROUP BY DATE(date_firstvisit)
HAVING COUNT(*) = 
(
  SELECT MAX(s)
  FROM(
  SELECT COUNT(*) s
  FROM visitors
  GROUP BY DATE(date_firstvisit))s
)
于 2012-11-28T03:54:22.163 に答える
3

あなたのDATE周りの機能date_firstvisitがありませんSELECT。での関数の使用を処理するためのエイリアスも必要ですPDO

MySQL の場合:

SELECT DATE(date_firstvisit) AS firstvisit, COUNT(date_firstvisit) AS count
FROM visitors
GROUP BY DATE(date_firstvisit)
ORDER BY COUNT(date_firstvisit) DESC
LIMIT 1

実際に見る

于 2012-11-28T03:53:14.017 に答える