Mysql
 sql >> Baza danych >  >> RDS >> Mysql

doktryna - pobierz następny i poprzedni zapis

Odpowiedź Alexandra jest bliska. Gdy zapytasz o id < 2 LIMIT 1 zwróci 1 , ale jeśli zapytasz o id < 5 LIMIT 1 to również zwróci 1 . To dlatego, że zwraca 1, 2, 3, 4 i pobiera pierwszy element, którym jest 1 zamiast potrzebnych 4 .

Wystarczy dodać ORDER BY id DESC aby uzyskać poprzedni element. To zwróci 4, 3, 2, 1 i LIMIT 1 zwróci 4 lub poprzedni element.

$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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyłącz notację naukową MySQL

  2. Jak zrobić unikalne ograniczenie działa z wartością NULL w MySQL

  3. Jak obliczyć najwyższe dzienne zmiany cen w % za pomocą MySQL?

  4. czy dobrze jest przechowywać wartość dziesiętną jako varchar w mysql?

  5. Jak ustawić domyślną wartość typu danych MySQL enum na „Nie”?