Как выбрать записи, близкие к одной в SQL? - PullRequest
4 голосов
/ 26 ноября 2010

У меня есть одна таблица в базе данных со структурой вроде:

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 ]

4 голосов
/ 26 ноября 2010

Сортировка по абсолютной разнице:

SELECT * FROM test
ORDER BY ABS(Money - (
    SELECT Money FROM test WHERE Id = 2
)) 
LIMIT 4;
0 голосов
/ 26 ноября 2010

ВЫБРАТЬ * ОТ теста, где деньги> = заказ по деньгам LIMIT 4; *

Пример: Выбрать * из теста, где деньги> = 21.00 заказ по деньгам LIMIT 4;

более простое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...