Prawdopodobnie mógłby po prostu użyć UNION, a następnie usunąć dodatkowe wyniki w kodzie proceduralnym wyświetlającym wyniki (ponieważ zwróci to 20 wierszy w przypadkach bez krawędzi):
(SELECT
*
FROM photos
WHERE ID < #current_id#
ORDER BY ID DESC LIMIT 10)
UNION
(SELECT *
FROM photos
WHERE ID >= #current_id#
ORDER BY ID ASC LIMIT 10)
ORDER BY ID ASC
EDYCJA:Zwiększony limit do 10 po obu stronach UNII, zgodnie z sugestią le dorfier .
EDYCJA 2:Zmodyfikowano, aby lepiej odzwierciedlić ostateczną implementację, zgodnie z sugestią Dominica.