sql >> Database teknologi >  >> RDS >> Mysql

doktrin - få næste og forrige optegnelse

Alexandrs svar er tæt på. Når du forespørger efter id < 2 LIMIT 1 det vil returnere 1 , men hvis du forespørger efter id < 5 LIMIT 1 dette vil også returnere 1 . Det er fordi den returnerer 1, 2, 3, 4 og tager det første element, som er 1 i stedet for den nødvendige 4 .

Bare tilføj ORDER BY id DESC for at få den forrige vare. Dette vil returnere 4, 3, 2, 1 og LIMIT 1 returnerer 4 , eller det forrige 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. Mysql for langsom ved simpel forespørgsel mellem to tabeller

  2. MySQL Group efter ID og Seneste DateTime

  3. Unik begrænsning, hvordan man undgår dubletter

  4. Søg i GROUP_CONCAT ved at bruge LIKE