Допустим, у меня есть такая таблица:
id: PRIMARY INT
price: INT (in dollars)
typeOfHouse: TINYINT (enumerated house types)
и, скажем, существует кортеж (id = 3, цена = 1243, typeOfHouse = 20).
Теперь я хочу выбрать 2 более дешевых дома и 2 более дорогих (2 вверх, 2 вниз). Это можно сделать с помощью двух запросов (UNION):
SELECT * FROM houses WHERE typeOfHouse=20 AND price>=1243 ORDER BY price LIMIT 3
SELECT * FROM houses WHERE typeOfHouse=20 AND price<=1243 ORDER BY price DESC LIMIT 3
Это гипотетический пример, в общем случае условие будет гораздо более сложным, поэтому вопрос - возможно ли сделать это быстрее за один запрос , поэтому выбор условия не делает ' нужно выполнить дважды.