Wątek przeniesiony 2021-03-11 18:05 z PHP przez Ktos.

Sprawdzenie, czy istnieje już jakiś rekord dla obecnego miesiąca.

0

Witam,
potrzebuję sprawdzić, czy istnieje już w bazie jakiś rekord z obecnego miesiąca. Jeśli takiego nie ma - niech pobiera z miesiąca poprzedniego (to samo w przypadku, gdy nie ma w miesiącu poprzednim, to niech pobiera z (obecnyMiesiac-2) itd.

Czy jest możliwość zrobienia tego w 1 zapytaniu, aby nie było konieczności tworzyć kilku? Tj. Sprawdzenie, czy w obecnym obecnym miesiącu są (teraz - marzec), jeśli nie ma, to wykonać zapytanie pobierające z poprzedniego miesiąca (luty). Z kolejnej strony - jeśli ostatni rekord był w grudniu poprzedniego roku, to tych zapytań już kilka by się utworzyło.

SELECT *
FROM `annon` as a
LEFT JOIN `users` as u ON a.id = u.id
WHERE a.year = '" . $currentYear . "' AND a.category = '" . $currentMonth . "'
GROUP BY a.category, u.name
ORDER BY u.id DESC
LIMIT 5

Analogicznie - $currentYear - obecny rok, zaś $currentMonth - obecny miesiąc.

Reasumując: jest możliwość, aby dojść do ostatniego miesiąca, w którym są rekordy możliwie najmniejszą ilością zapytań, a najlepiej 1?

Ciężko było mi dobrać kategorię - PHP, czy bazy danych. Jeśli podjąłem zły wybór - prosiłbym o przeniesienie.

Pozdrawiam

4

Jak tak czytam twój opis to mi wychodzi, że potrzebujesz ostatnio dodany rekord. Posortuj po (id jak jesteś pewny, że rekordy nie mogą wpadać w inne kolejności) i weź pierwszy z góry.

1 użytkowników online, w tym zalogowanych: 0, gości: 1