Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie wedlug ilosci wysapien
jaco
post 19.04.2004, 20:52:57
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Mam taki problem - musze posortowac wyniki wedglug ilosci wystapien danego ciagu...

O ile dobrze pamietam bylo to juz prezentowane na forum lecz nie potrafilem sie tego doszukac - bede wdzieczny za link/odpowiedz.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
FiDO
post 20.04.2004, 18:30:43
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Wolalbym jednak, zebys wiedzial, wiec postaram sie wytlumaczyc.

Po kolei:

1) REPLACE(text, '$search', SUBSTRING('$search',2)

zamieniamy kazde wystapienie szukanego ciagu na dowolny ciag, ktory jest o jeden znak krotszy od szukanego (dlaczego? ano dlatego, ze na kazdym znalezionym wyrazie skracamy caly ciag o jedna litere),
ja akurat wybralem substringa (ucinam od drugiego znaku do konca, czyli wynik jest o 1 krotszy niz orginalny wyraz), bo to mi pierwsze wpadlo na mysl i jest chyba jedna z szybszych alternatyw (mozna tez np. REPEAT('*', LENGTH($search)) ale to dluzsze i chyba mniej zrozumiale na pierwszy rzut oka - nie wiem jak z szybkoscia)

2) LENGTH(text) - LENGTH(REPLACE(text, '$search', SUBSTRING('$search',2)))

mierzymy ilosc liter w orginalnym tekscie, potem ilosc liter w tekscie z wyzej opisana podmiana
odejmujemy to od siebie i jest wynik smile.gif
Dlaczego? to juz pisalem wczesniej, kazde wystapienie szukanego ciagu "zbiera" jedna literke, wiec ilosc zabranych literek jest rowna ilosci wystapien danego ciagu, jasne? smile.gif


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:25