Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Następny i poprzedni rekord
Forum PHP.pl > Forum > Bazy danych > SQLite
WebCM
  1. SELECT
  2. ID,name
  3. FROM
  4. obrazy
  5. WHERE
  6. ID < 999
  7. ORDER BY
  8. ID DESC LIMIT 1
  9. UNION
  10. SELECT
  11. ID,name
  12. FROM
  13. obrazy
  14. WHERE
  15. ID > 999
  16. ORDER BY
  17. ID LIMIT 1

SQLite twierdzi, że ORDER BY powinien znaleźć się dopiero po słowie UNION. Nic nie daje użycie UNION ALL i wzięcie tych 2 zapytań w nawiasy. Czy pozostaje wysyłać 2 oddzielne zapytania?

Może są inne metody na wyciągnięcie poprzedniego i kolejnego rekordu z bazy danych w 1 zapytaniu?

Zapytanie musi działać w SQLite i MySQL.

Poza tym można podpinać do ORDER BY? W SQLite nie ma błędu, ale i reakcji.
Kod
$x = $db->prepare('SELECT ID,name FROM obrazy WHERE ID<4 ORDER BY :test LIMIT 1');
$x->bindValue(':test','ID DESC');
$x->execute();
Niezależnie od tego, czy podepnę ID DESC, czy ID, otrzymuję ten sam rekord, choć powinien pojawić się inny.

Właściwie zależy mi na pobraniu:
- poprzedniego obrazu, a gdy nie ma - ostatniego
- następnego obrazu, a gdy nie ma - pierwszego

Wysyłając nawet 2 osobne zapytania dla "poprzedni" i "następny", jaki warunek postawić, aby pobrać ostatni rekord, gdy nie znajdzie poprzedniego - tak jak napisałem powyżej?
Riklaunim
Pobrać 3 od ID - 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.