एलेक्जेंडर की प्रतिक्रिया करीब है। जब आप id < 2 LIMIT 1
. के लिए क्वेरी करते हैं यह 1
return लौटाएगा , लेकिन यदि आप id < 5 LIMIT 1
. के लिए क्वेरी करते हैं यह 1
भी लौटाएगा . ऐसा इसलिए है क्योंकि यह 1, 2, 3, 4
लौटाता है और पहला तत्व लेता है, जो है 1
जरूरत के बजाय 4
।
बस ORDER BY id DESC
. जोड़ें पिछली वस्तु प्राप्त करने के लिए। यह 4, 3, 2, 1
लौटाएगा और LIMIT 1
4
लौटाएगा , या पिछला तत्व।
$query = $em->createNativeQuery('SELECT id FROM users WHERE
id = (SELECT id FROM users WHERE id > 2 LIMIT 1)
OR
id = (SELECT id FROM users WHERE id < 2 ORDER BY id DESC LIMIT 1)', $rsm);