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, если использую столбец состояния, который не является уникальным. Где он дает правильные значения, если я использую уникальные столбцы.