3

ここにデモがあります

順番は11月、10月です。これに ORDER BY を追加して、月、1 月、2 月、3 月などで注文する方法を教えてください。

前もって感謝します。

CREATE TABLE `hw_homework` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `studentid` int(10) NOT NULL,
  `subjectid` int(10) NOT NULL,
  `assignment_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `teacherid` int(10) NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=55 ;

--
-- Dumping data for table `hw_homework`
--

INSERT INTO `hw_homework` (`id`, `studentid`, `subjectid`, `assignment_name`, `teacherid`, `date`) VALUES
(52, 56, 13, '1A', 20, '2012-10-28'),
(53, 56, 6, '12', 18, '2012-10-28'),
(54, 56, 4, 'page42', 59, '2012-11-02');


SELECT  studentID, 
        DATE_FORMAT(`date`,'%M') `month`,
        COUNT(studentid) totalMissed
FROM hw_homework
WHERE studentid = 56
GROUP BY studentid, DATE_FORMAT(`date`, '%M')
4

7 に答える 7

8

Chuidiangが提案したように、私が望むものを得るために以下を追加しました。みんな、ありがとう。

ORDER BY Month(date)
于 2012-11-02T06:32:47.740 に答える
2

あなたの場合、それはaphlabetsに基づいて注文しています。以下は正しい結果をもたらします。

SELECT  studentID, 
    DATE_FORMAT(`date`,'%M') `month`,
    COUNT(studentid) totalMissed
FROM hw_homework
WHERE studentid = 56
GROUP BY studentid, DATE_FORMAT(`date`, '%M')
ORDER BY DATE_FORMAT(`date`,'%m')
于 2012-11-02T06:57:11.037 に答える
1

クエリで次のように使用します

GROUP BY MONTH(date)
于 2012-11-02T05:50:39.373 に答える
0
 SELECT  studentID, 
    DATE_FORMAT(`date`,'%M') as `month`,
    COUNT(studentid) totalMissed
FROM hw_homework
WHERE studentid = 56
order by Month(month)
GROUP BY studentid, DATE_FORMAT(`date`, '%M')
于 2012-11-02T05:49:44.430 に答える
0
SELECT  studentID, 
        DATE_FORMAT(`date`,'%M') `month`,
        COUNT(studentid) totalMissed
FROM hw_homework
WHERE studentid = 56
GROUP BY MONTH(DATE) ASC
于 2012-11-02T05:53:24.843 に答える
-1

mysql> select * from hw_homework order by date asc; //昇順

また

mysql> select * from hw_homework order by date desc;

于 2012-11-02T05:51:08.670 に答える