我有疑问:
SELECT ID
FROM VACANCIES
WHERE CATEGORYID = 1
AND VISIBLE = '1'
AND user_enable = '1'
AND DATA >= '2012-08-10 10:54:46'
AND torder >= 0
AND ID > 570153
ORDER BY torder ASC, DATA ASC, ID ASC
LIMIT 1
我得到结果ID - 570164作为上一个键,这是错误的结果:正确的结果是567556
570164 | ROW 1 | 2012-08-10 11:27:39
567556 | ROW 2 | 2012-08-10 10:55:53
570153 | ROW 2 | 2012-08-10 10:54:46
是否有解决方案获得prev id? 注意: 我按日期订购,但日期可以相等,而且前缀ID可能小于临时ID
答案 0 :(得分:0)
您的情况表明该ID必须大于570153。
我的猜测是你想要一个小于而不是大于你的ID条件,但我不知道你的目标是什么,所以不能确定。 我还会在ID列上将您的排序条件从ASC切换到DESC,或者您将获得第一个匹配(即最低ID),而不是最接近您要比较的值的那个。
SELECT ID
FROM VACANCIES
WHERE CATEGORYID = 1
AND VISIBLE = '1'
AND user_enable = '1'
AND DATA >= '2012-08-10 10:54:46'
AND torder >= 0
AND ID < 570153
ORDER BY torder ASC, DATA ASC, ID DESC
LIMIT 1