![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 6.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam tabelę, w której jedna z kolumn to 'ip', w której, jak nietrudno się domyślić, przechowuję adresy IP ![]() Chcę pobrać wszystkie unikalne (nie powtarzające się) adresy IP, które należą do klasy C. Tutaj, jako klasa C należy rozumieć adresy XXX.XXX.XXX.ZZZ. Napisałem zatem zapytanie:
Niestety, zapytanie zwraca unikalne adresy nie z klasy C, jednak wszystkie unikalne adresy. Mówiąc prosto, chcę aby zostały zwrócone wszystkie unikalne adresy zaczynające się na XXX.XXX.XXX czyli odrzucamy końcowy oktet adresu. Dodam, że jeżeli wpiszę
To także wyświetla wszystkie unikalne adresy. Natomiast, jeśli wpiszę:
To wyświetli wszystkie adresy zaczynające się na 178. Dla wyjaśnienia, zapytanie, które wpisuję rozumiem tak:
Pobierz wszystkie unikalne dane z kolumny ip, tabeli katalogi, gdzie ip zaczyna się od dowolnej cyfry występującej wiecej niż jeden raz, następnie występuje kropka, potem cyfra występująca więcej niż jeden raz, znowu kropka i znów cyfra występująca więcej niż jeden raz. Pozdrawiam i proszę o pomoc, Northulus. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 14.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 6.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, zdarzają się też adresy XX.XXX.XX
Zatem doszedłem do wniosku, że moim "punktem kontrolnym" będzie kropka. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 14.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie kojarzę funkcji, która zwróci miejsce trzeciej kropki, ale możesz spróbować skorzystać z funkcji LOCATE na zasadzie LOCATE('.', ip, LOCATE('.', ip)) ...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
A może coś takiego:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 6.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, nic nie pomogło.
Chcę pobrać ilość unikalnych adresów klasy C (tutaj chodzi tylko o trzy pierwsze oktety) z bazy danych. Mam np. adresy: 72.211.213.111 72.211.213.221 73.211.215.215 73.211.215.244 54.253.199.109 I tutaj zlicza: 72.211.213.X 72.211.213.X 73.211.215.X 73.211.215.X 54.253.199.X 72.211.213.X - wystapiło 2 razy 73.211.215.X - wystapiło 2 razy 54.253.199.X - wystąpiło 1 raz sumuje... łacznie wystapiło 5 razy wyszukuje jedynie unikalne adresy... łącznie wyświetla, że unikalnych adresów jest 3. Wierzę, że teraz rozjaśniłem szerzej mój problem ![]() Proszę o pomoc! ![]() Edit: Sądzę, że znalazłem rozwiązanie swojego problemu. Użyłem zapytania:
Działa tak, jak chciałem. Dziękuję wszystkim za pomoc, w szczególności trafas'owi za wskazanie kierunku rozwiązania problemu ![]() Pozdrawiam, Northulus. Ten post edytował Northulus 11.06.2012, 11:34:23 |
|
|
![]()
Post
#7
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 22:35 |