如何在MySQL中按月排序
订单是11月和10月。我怎样才能将订单添加到此项中,以便订单是按月、一月、二月、三月……等 提前谢谢如何在MySQL中按月排序,mysql,sql-order-by,Mysql,Sql Order By,订单是11月和10月。我怎样才能将订单添加到此项中,以便订单是按月、一月、二月、三月……等 提前谢谢 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
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')
在查询中使用以下命令
GROUP BY MONTH(date)
mysql>按日期asc从hw_作业订单中选择*//递增顺序 或
mysql>按日期描述从hw_作业顺序中选择* 按照崔迪亚的建议,我添加了以下内容以获得我想要的。
SELECT studentID,
DATE_FORMAT(`date`,'%M') `month`,
COUNT(studentid) totalMissed
FROM hw_homework
WHERE studentid = 56
GROUP BY MONTH(DATE) ASC
谢谢大家
ORDER BY Month(date)
在您的情况下,它是基于aplhabets的订购。 下面将给出正确的结果
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')
偶然发现这篇文章试图找到按月份名称排序的解决方案。可能不是非常优雅的解决方案,但您可以使用string函数来获得该结果集
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
FIELD(
DATE_FORMAT(`date`, '%M'),
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);
试试看。此外,为了便于阅读,您还可以使用更简单的函数MONTHNAME(
DATE
)替换日期格式。为什么不按日期订购asc?您是否尝试过“按月(日期)订购”?您还不明白所问的问题。查看其他答案以了解更多信息。
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
FIELD(
DATE_FORMAT(`date`, '%M'),
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);