我正在尝试排序一些日期,以便它们以最接近指定日期的特定顺序列出:
id year
---------
1 2010
2 2011
3 1992
4 1996
5 1987
6 1988
结果应该是(如果我指定1992年作为订购年份):
id year
---------
3 1992
4 1996 <4 away
5 1987 <5 away
6 1988 <6 away
1 2010 <8 away
2 2011 <9 away
我希望它返回所有日期,但最相关的(最近的)在列表的第一位。
很抱歉,我修改了我的问题,以便更清楚地说明我要达到的目标。
最佳答案
这应该能解决你的问题。
SELECT *
FROM `table`
ORDER BY ABS(1992-`year`) ASC