0

クエリがあります:

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 よりも小さい場合があります

4

1 に答える 1

0

あなたの条件は、IDが570153より大きくなければならないことを示しています。

  • 570164は返される結果であり、その条件を満たす。
  • 567556はあなたが望んでいる結果であり、その条件を満たしていません。

私の推測では、あなたはあなたの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
于 2012-08-12T18:07:23.057 に答える