Проблема в поиске следующей / предыдущей строки в MySQL - PullRequest
0 голосов
/ 20 июня 2010
SELECT id ,MAX(status) AS status FROM Mail WHERE 
     status < (SELECT status FROM Mail WHERE id = 1000) 
     GROUP BY status ORDER BY status DESC LIMIT 1;

Я использую этот запрос, чтобы найти предыдущую строку текущей строки 1000. Здесь я получаю значения NULL, если использую столбец состояния, который не является уникальным. Где он дает правильные значения, если я использую уникальные столбцы.

1 Ответ

0 голосов
/ 20 июня 2010

Попробуйте это:

SELECT m1.id, MAX(m1.status) AS 'status' FROM Mail m1, Mail m2
WHERE m1.status < m2.status AND m2.id = 1000
GROUP BY m1.status ORDER BY m1.status DESC LIMIT 1;
...