Чтобы выбрать ближайшую большую и меньшую запись из базы данных MySQL в одном запросе, можно использовать UNION и подзапросы. Первый подзапрос будет выбирать самую близкую бОльшую запись, а второй подзапрос - самую близкую меньшую запись.
Вот пример запроса:
SELECT * FROM ( SELECT * FROM your_table WHERE your_column > 'значение' ORDER BY your_column ASC LIMIT 1 ) AS next_record UNION SELECT * FROM ( SELECT * FROM your_table WHERE your_column < 'значение' ORDER BY your_column DESC LIMIT 1 ) AS previous_record
В этом примере замените your_table
на имя таблицы, в которой вы храните данные, и your_column
на имя столбца, по которому вы хотите выбрать ближайшие большую и меньшую записи. Замените 'значение'
на значение, относительно которого вы хотите выбрать записи.
В этом запросе первый подзапрос выбирает самую близкую бОльшую запись, сортируя записи по возрастанию значения столбца и ограничивая результат одной записью с помощью LIMIT 1
. Второй подзапрос выбирает самую близкую меньшую запись, сортируя записи по убыванию значения столбца и также ограничивая результат одной записью с помощью LIMIT 1
.
Объединение UNION
объединяет результаты этих двух подзапросов в один результат, который будет содержать ближайшую бОльшую запись и ближайшую меньшую запись вместе. Вы можете использовать это выражение для выборки ближайших записей из вашей базы данных MySQL.