Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Następny i poprzedni rekord
trifek
post
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

Ostrzeżenie: (0%)
-----


Witam.
Mam wiele rekordów z identyczną datą. Wpisy w bazie nie są dodawane chronologicznie.

Baza z przykładowymi danymi: https://pastebin.com/L32J1wpX

Baza posiada listę ze zdjęciami, które wyświetlam za pomocą zapytania:

  1. SELECT * FROM psGalleryCategories WHERE enable = 1 ORDER BY date DESC.


Wchodzę w rekord o id = 19 (id_categories_of_photos = 19) i chciałbym wyświetlić poprzedni i kolejny rekord (z uwzględnieniem dat).

Próbowałem takie coś:

Prv:
  1. SELECT * FROM psGalleryCategories WHERE id_categories_of_photos != :id_categories_of_photos AND date <= :date AND enable = 1 ORDER BY date DESC LIMIT 1;



Next:
  1. SELECT * FROM psGalleryCategories WHERE id_categories_of_photos != :id_categories_of_photos AND date >= :date AND enable = 1 ORDER BY date DESC LIMIT 1;




Ale nie działa. Zwraca błędny wynik. Jak to naprawić?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli zdarzają się daty równe, to po pierwsze nie wybierzesz rekordu przed lub po ze względu na nierówność słabą. Musiałaby być nierówność ostra, ale nie na dacie, lecz na kluczu, który wprowadza tą chronologię. Wtedy poprzedni rekord to < i DESC, następny to > i ASC.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 20:00