एलेक्जेंडर की प्रतिक्रिया करीब है। जब आप 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);