如何在SQL中选择接近1的记录?

时间:2010-11-26 10:19:09

标签: sql sorting

我在数据库中有一个表,其结构如下:

Id |   Name   |     Money
--------------------------
1  |   Joe    |    34.50
2  |   Jane   |    12.55
3  |   Kate   |    55.21
4  |   George |    9.54
5  |   Hilary |    45.21
6  |   Jacob  |    32.00
7  |   Ginny  |    21.00

现在我想选择一个指定的记录(知道它是Id)和其他3个最接近它的记录(按Money排序)。

所以它就像:

SELECT * FROM test ORDER BY money LIMIT 4;

最接近(Money)与所选行的资金结果。

2 个答案:

答案 0 :(得分:4)

按绝对差异排序:

SELECT * FROM test
ORDER BY ABS(Money - (
    SELECT Money FROM test WHERE Id = 2
)) 
LIMIT 4;

答案 1 :(得分:0)

SELECT * FROM test where money> =按订单金额限制4; *

例如:从测试中选择*,其中金钱> = 21.00,按金额限制4;

这将是一个更简单的解决方案。