Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] przeszukanie i wylistowanie
arky_
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 24.04.2009

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


Witam,
Mam tabele "kompy" a w niej pola (id,host,ip). Tabela wypełniona jest adresami z puli 10.0.0.1 do 10.0.0.254. Do każdego IP przypisany jest host.
W całej tabeli występują braki ip np.
10.0.0.1
10.0.0.2
10.0.0.4
10.0.0.5
brakuje 10.0.0.3.
Jak przeszukać tabele i wylistowac brakujące ip?
Go to the top of the page
+Quote Post
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


select ip from tabela where not in ( select ip from tabela order by ip );

@edit
to nie zadziała, musiałbyś mieć w tej tabeli wszystkie adresy ip i na podstawie jakiegoś warunku je pobierać.

Także rozwiązanie pozostaje pobrać wszystko co jest w tabeli a później w pętli w php sprawdzać których nie ma, albo w procedurze sprawdzać od razu których nie ma, nie znam procedury mysql, nie pomogę.

Ten post edytował cojack 11.07.2010, 18:58:35
Go to the top of the page
+Quote Post
Mchl
post
Post #3





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


IP pewnie trzymasz w VARCHAR zamiast skonwertowane do INTa przez INET_ATON() ?
Wygodniej jest szukać luk w ciągu liczb naturalnych niż w stringu.
Go to the top of the page
+Quote Post
arky_
post
Post #4





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 24.04.2009

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


Tak, dokładnie stringi.
Czy coś da radę z tym zrobic i jakos jednak wyszukać?
Go to the top of the page
+Quote Post
Mchl
post
Post #5





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Da się. Możesz na przykład wygenerwoać sobie tabelę TEMPORARY z jedną kolumną ip gdzie będziesz miał 255 wartości od 10.0.0.1 do 10.0.0.255 a potem złączyć ją left joinem z Twoją tabelą.

Kod
SELECT ip FROM temp_ip LEFT JOIN kompy USING (ip) WHERE kompy.ip IS NULL
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:26