我意识到这是一个老线程,但是当它在某些搜索时间到谷歌的顶部时,我会用它来分享我的方法 .
我想要与原始问题相同的结果,但另外我想要从一周的当天开始对结果进行排序,然后在剩下的时间里进行 .
我创建了一个单独的表,其中列出了两周的日期,因此无论您从哪一天开始,都可以运行7天的序列 .
CREATE TABLE IF NOT EXISTS `Weekdays` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
INSERT INTO `Weekdays` (`id`, `name`) VALUES
(1, 'Monday'),
(2, 'Tuesday'),
(3, 'Wednesday'),
(4, 'Thursday'),
(5, 'Friday'),
(6, 'Saturday'),
(7, 'Sunday'),
(8, 'Monday'),
(9, 'Tuesday'),
(10, 'Wednesday'),
(11, 'Thursday'),
(12, 'Friday'),
(13, 'Saturday'),
(14, 'Sunday');
然后,我使用一个变量来运行查询,该变量按顺序确定起点,并使用连接来获取日期的订单号 . 例如,要在星期三开始列表,我会执行以下操作:
SELECT @startnum := MIN(id) FROM Weekdays WHERE name='Wednesday';
SELECT * FROM Events INNER JOIN ( SELECT id as weekdaynum, name as dayname FROM Weekdays WHERE id>(@startnum-1) AND id
我希望这可以帮助那些偶然发现这篇文章的人 .