sql >> Database >  >> RDS >> Mysql

doctrine - krijg volgende en vorige record

Het antwoord van Alexandr is dichtbij. Wanneer u zoekt naar id < 2 LIMIT 1 het retourneert 1 , maar als u zoekt naar id < 5 LIMIT 1 dit levert ook 1 op . Dat komt omdat het 1, 2, 3, 4 . teruggeeft en neemt het eerste element, dat is 1 in plaats van de benodigde 4 .

Voeg gewoon ORDER BY id DESC . toe om het vorige item te krijgen. Dit levert 4, 3, 2, 1 . op en de LIMIT 1 retourneert 4 , of het vorige 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. Sqlalchemy gebruiken om te zoeken met behulp van meerdere kolommen waar in clausule

  2. AVG()-functie in MariaDB

  3. Hoe kan ik dynamische grafieken genereren met MySQL-gegevens?

  4. Vervang standaard null-waarden geretourneerd door Left Outer Join