sql >> Databáze >  >> RDS >> Mysql

doktrína - získat další a předchozí záznam

Alexandrova odpověď je blízko. Při dotazu na id < 2 LIMIT 1 vrátí 1 , ale pokud zadáte dotaz na id < 5 LIMIT 1 to také vrátí 1 . Je to proto, že vrací 1, 2, 3, 4 a vezme první prvek, což je 1 spíše než potřebné 4 .

Stačí přidat ORDER BY id DESC získat předchozí položku. To vrátí 4, 3, 2, 1 a LIMIT 1 vrátí 4 , nebo předchozí prvek.

$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. Vytvořte sloupec automatického zvýšení v SQLite

  2. zf2 tablegateway vyberte sloupce podle názvu sloupce

  3. SQL INSERT...SELECT s automatickým přírůstkem DATETIME

  4. Výkon vkládání MySQL InnoDB (Windows)