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值。如果我使用唯一列,它会给出正确的值。
答案 0 :(得分:0)
试试这个:
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;