Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Reset numeracji z nowym rokiem
Forum PHP.pl > Forum > Bazy danych > MySQL
mwolodzko
Mam taką tabelę:

id(autoincrement, unique) | numer(int) | data (timestamp)

W drugiej kolumnie zapisywane są kolejne numery. W jaki sposób zrobić żeby ze zmianą daty na nowy rok numeracja w kolumnie 'numer' zaczynała się od początku?
nospor
A w jaki sposob ty te numery teraz zwiekszasz?
Pyton_000
Zapewne robisz to tak (a przynajmniej ja bym tak zrobił tongue.gif )
  1. SELECT MAX(numer)+1 AS next FROM baza WHERE YEAR(FROM_UNIXTIME(DATA)) = YEAR(NOW());

I masz kolejny nr. w roku smile.gif Przy nowym roku samo się zacznie od 1
mmmmmmm
I już wpisujesz same Nulle smile.gif
Trzeba obsłużyć Null dla pierwszego numeru w roku.
Pyton_000
IFNULL(MAX(numer), 0)

smile.gif
maly_swd
http://forum.php.pl/index.php?s=&showt...t&p=1165095
To powinno Ci pomóc... wystarczy dodać kolumnę YEAR.
nospor
@maly przeciez juz jest kolumna z datą... nie ma sensu dodawac kolejnej sztucznej
maly_swd
Tak, wiem że jest kolumna z datą. Ale aby zadziałał tamten przykład potrzebna jest kolumna YEAR...

Tamten sposób z MAX +1 jest ok, pod warunkiem, że nie skasujesz ostatniego rekordu i nie dodasz nowego. Wtedy ten nowy dostanie nr ze starego;)
nospor
Problem juz dawno rozwiązany z tym co jest bez zadnych dodatkowych zmian, a ty podajesz przyklad, ktory wymaga tworzenia sztucznych tworów... po co?
maly_swd
Aby inni wiedzieli, że są inne rozwiązania danego zagadnienia.

Czy jest coś w tym złego?
mwolodzko
Dziękuję za pomoc smile.gif
Takie zapytanie działa w 100% jak należy
  1. INSERT INTO tabela (numer) SELECT IFNULL(MAX(numer), 0)+1 FROM tabela WHERE YEAR((DATA)) = YEAR(NOW())";
nospor
Cytat
Aby inni wiedzieli, że są inne rozwiązania danego zagadnienia.

Czy jest coś w tym złego?
W tym wypadku tak, te inne rozwiązanie nie ma tu sensu i nie a co go pchac na sile.
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.