Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zliczanie wystapien, regexp
dharul
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.07.2008
Skąd: Kraków

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


Szanowni forumowicze, potrzebuje pomocy i/lub informacji czy dane ktore chce uzyskac z bazy sa w ogole mozliwe do uzyskania.

Mam tabele:

------------------
id | visit_host |
------------------
1 | onet.pl |
2 | net.de |
3 | chelo.pl |
...


Potrzebuje uzyskac dane w takiej postaci

ile | domena
-------------
1 | .de
3 | .pl


Czyli krotko mowiac zliczanie wystapien takiej samej domeny w kolumnie visit_host

napisalem cos takiego:

  1. SELECT count(*) AS ile, '.pl' AS domena FROM `visit` WHERE visit_host REGEXP '[.]pl'


aczkolwiek jak widac nie jest to zapytanie najwyzszych lotow. Moje pytania sa nastepujace:

1. czy mozna w jakis sposob wyswietlic wyciety fragment stringa przy pomocy regexp? (regexp daje tylko infromacje boolowska)
2. czy jest sens w tym przypadku joinowac tabele sama do siebie?
3. jak zliczyc wystepowanie takich samych fragmentow w stringu?

Bede wdzieczny!
Go to the top of the page
+Quote Post
dharul
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.07.2008
Skąd: Kraków

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


dzieki za odpowiedz

niestety bardziej chodzilo mi o to, ze mam wiele roznych rodzajow domen w visit_host (tzn. nie wiem ile i jakie), a nie tylko dwie .pl i .de ...
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To po co używasz REGEXP do takich prostych wyrażeń? Jeśli masz stałą liczbę znaków poszukiwanych od prawej, to skorzystaj z czegoś takiego:

  1. SELECT * FROM domeny WHERE RIGHT(domena,3)

Tylko sobie dostosuj. Nie ma sensu męczyć dodatkowo wyrażeń regularnych, jeśli można osiągnąć taki sam efekt korzystając z mniej zasobożernych funkcji.
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: 16.09.2025 - 04:43