![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 14.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taką bazę danych: id: | 1 | 2 | 3 | 5 | 6 | I moje pytanie polega na tym jak można zrobić skrypt który wyświetliłby najmniejszą cyfrę której nie ma w bazie danych (w tym przypadku wyświetliłby: 4) Dzięki z góry. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Masz to:
mysql> select * from test2; +------+ | t | +------+ | 1 | | 2 | | 3 | | 5 | | 6 | +------+ I wpisujesz: alter table test2 add t2 int not null auto_increment primary key; select min(t2) from test2 where t2!=t; alter table test2 drop t2; I masz wynik |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja oprócz tego jak to zrobić, bym zapytał po co?
Bo coś czuję, że to nie ma jakiś specjalnych przesłanek. (oprócz chęci posiadania wszystkich numerków) A dyskusja jak to zrobić już był na forum. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
to zapytanie dla takich danych zwróci 0 ... a nie 4 Jedyna droga którą możesz to zrobić to pobranie posortowanych danych, przejrzenie wszystkich i porównywanie poprzedniej wartości z obecną. I jak jest różnica większa niż 1 to masz brakujące miejsce ... bardzo czasochłonne i nie wydajne. Chodzi o zapełnianie brakujących miejsc ? to może rozważ inny klucz główny zamiast liczbowego ? skoro rekordy są usuwane to nie ma powiązań z innymi tabelami więc może uid jako klucz ? nie będziesz miał "wolnych" miejsc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Moje polecenie wykonuje się chwilę i zwraca poprawny wynik. A to że jest w kilku zapytaniach to chyba nie jest problemem.
Swoją drogą to nie wiem do czego jest to potrzebne |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:21 |