2009-07-05 12 views

Respuesta

16

necesita cambiar su ORDER BY:

SELECT * FROM table WHERE `id` > 1556 ORDER BY `id` ASC LIMIT 1 
UNION 
SELECT * FROM table WHERE `id` < 1556 ORDER BY `id` DESC LIMIT 1 

Esto asegura que el campo id está en el orden correcto antes de tomar la resultado superior

También puede utilizar MIN y MAX:

SELECT 
    * 
FROM 
    table 
WHERE 
    id = (SELECT MIN(id) FROM table where id > 1556) 
    OR id = (SELECT MAX(id) FROM table where id < 1556) 

Cabe señalar que SELECT * no se recomienda tener en el código de producción, así que nombre sus columnas en su declaración SELECT.

+1

gracias por su respuesta, solo agregué * desde la pereza para escribir cualquier columna aquí, las tengo nombradas en el código actual :) –

Cuestiones relacionadas