sql >> Databasteknik >  >> RDS >> Mysql

doktrin - hämta nästa och föregående rekord

Alexandrs svar är nära. När du frågar efter id < 2 LIMIT 1 det returnerar 1 , men om du frågar efter id < 5 LIMIT 1 detta returnerar också 1 . Det beror på att den returnerar 1, 2, 3, 4 och tar det första elementet, som är 1 snarare än den nödvändiga 4 .

Lägg bara till ORDER BY id DESC för att hämta föregående objekt. Detta returnerar 4, 3, 2, 1 och LIMIT 1 returnerar 4 , eller föregående 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. Hur man skapar MySQL View

  2. Konvertera från mysql till mysqli (mysql_fetch_array)

  3. Vad är en relationsdatabas?

  4. Mallmönster och modifierare för numerisk formatering i PostgreSQL