Предположим, что у нас есть новость с некоторым id, скажем = 22, тогда загрузим предыдущую и последующую записи (не обязательно 21 и 23, так как id могут быть прорежены):
(SELECT * FROM News WHERE newsID < 2 ORDER BY newsID DESC LIMIT 1)
UNION
(SELECT * FROM News WHERE newsID > 2 ORDER BY newsID LIMIT 1)
В ответ мы получим 2 строки (2 набора значений колонок таблицы News) - в первой будет предыдущая запись, а во второй - последующая относительно нашей исходной записи с id = 22