2009-07-05 5 views

Antwort

16

Sie benötigen ändern sich 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 

Dies stellt sicher, dass das id Feld in der richtigen Reihenfolge ist vor der Einnahme oberes Ergebnis

Sie können auch MIN und MAX:

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

Es sollte beachtet werden, dass SELECT * nicht in Produktionscode zu verwenden ist, obwohl, so nennen Sie Ihre Spalten in Ihrer SELECT Aussage.

+1

danke für deine antwort, ich habe nur * aus faulheit hinzugefügt, um irgendwelche spalten hier zu schreiben, ich habe sie im eigentlichen code benannt :) –

Verwandte Themen