我有一个带有“日期”字段的表“A”。我想进行一个选择查询并按降序排列具有先前日期的行,然后按升序排列具有下一个日期的行,所有这些都在同一个查询中。可能吗?
例如,表“A”:
id date
---------------------
a march-20
b march-21
c march-22
d march-23
e march-24
我想获得以“3 月 22 日”为开始日期的结果:
id date
---------------------
c march-22
b march-21
a march-20
d march-23
e march-24
在一个查询中,因为我用其中两个进行查询而且速度很慢,因为唯一的区别是排序,而且我必须做的连接有点“繁重”。
非常感谢。
最佳答案
你可以使用这样的东西——
SELECT *
FROM test
ORDER BY IF(
date <= '2012-03-22',
DATEDIFF('2000-01-01', date),
DATEDIFF(date, '2000-01-01')
);
这是 SQL Fiddle 测试的链接 - http://sqlfiddle.com/#!2/31a3f/13
关于mysql - 从日期范围的中间点开始的日期字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848545/