Respons Alexandr dekat. Saat Anda menanyakan id < 2 LIMIT 1
itu akan mengembalikan 1
, tetapi jika Anda meminta id < 5 LIMIT 1
ini juga akan mengembalikan 1
. Itu karena ia mengembalikan 1, 2, 3, 4
dan mengambil elemen pertama, yaitu 1
daripada 4
yang dibutuhkan .
Cukup tambahkan ORDER BY id DESC
untuk mendapatkan item sebelumnya. Ini akan mengembalikan 4, 3, 2, 1
dan LIMIT 1
akan mengembalikan 4
, atau elemen sebelumnya.
$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);