我正在尝试排序一些日期,以便它们以最接近指定日期的特定顺序列出:

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

10-08 07:35