![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam bazę seriali gdzie np. jeden rekord wygląda tak Brygada ratunkowa Sezon 6 Odcinek 14 każdy sezon ma swoje ID. Chcę wyciągnąć z bazy same tytuły zeby się nic nie powtarzało np. Brygada ratunkowa, Lost, CSI itp. Jak to zrobić?
-------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 18.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
SELECT DISTINCT ...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
ale to wyświetli mi pojedyncze rekordy a chyba nie wywali numerów sezonów itp nie?
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
a jaką masz strukturę tabeli? DISTINCT zwraca wyniki bez powtarzania się
Ten post edytował tehaha 24.05.2010, 16:27:41 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
struktura
![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Zaimplementuj sobie funkcję SQL w oparciu o algorytm porównywania Levenshtein'a. W internecie dużo jest na ten temat.
Drugą metodą jaka mi się nasuwa na myśl jest skorzystanie z pełnotekstowego wyszukiwania, lub Lucene/Sphinx. // edit Po strukturze tabeli wnioskuję, że korzystasz z MyISAM, tak więc nie ma problemu z użyciem zwykłego pełnotekstowego wyszukiwania w MySQL-u. I nie zapomnij o cache-u całości na sam koniec. Ten post edytował matix 24.05.2010, 16:37:43 -------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 265 Pomógł: 4 Dołączył: 30.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Do rozdzielenia tytułu od reszty możesz również po pobraniu danych z bazy użyć funkcji explode()
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
zobaczę z algorytmem Levenshtein'a
jak wykorzystać pełnotekstowe wyszukiwanie? explode chyba nie da rady, bo co jak tytuł będzie inaczej ułożony a wyrażeniami nie da rady tego zrobić? czy może muszę mieć jeszcze jedną tabele z samymi tytułami? -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no jeżeli jest to możliwe to tak, najlepiej gdybyś miał oddzielne kolumny dla id serii, sezonu, odcinka
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
no właśnie, ale nie mam :/
mogę to jakoś podzielić w php i dodać (jakie wyrażenie)? -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
wydaje mi się, że wykonanie wyrażenia na każdym pobranym rekordzie i jeszcze dalsze przetwarzanie tego będzie bardzo nie efektywne, może dorób te dodatkowe kolumny i napisz skrypt, który wyrażeniami regularnymi po oddzielaj tytuły od numerów odcinka i sezonów i porozmieszcza to w odpowiednich kolumnach, bo inaczej to nie ma sensu
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
wziąłem się jednak za explode
zrobiłem tak
działa, ale w nietkórych polach jeszcze dodaje fragment tytułu więc napisałem wyrazenie zeby wyciągało same liczby, ale z wyrazeniem już nie działa dostaje pustą tablice. już sobie poradziłem teraz tylko jak wyświetlić same tytuły, bez sezon, odcinek -------------------- |
|
|
![]() ![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Jeśli Twoj serwis się rozwinie to współczuję firmie która będzie Ci to hostować. Dlaczego? Jak będziesz miał kilkaset tysięcy wyników i zrobisz coś takiego co masz napisane (zakładam, że jeśli robisz serwis na takim poziomie to i cache nie będzie...) to serwis Ci długo nie pociągnie.
Poczytaj o tym, co ja Ci napisałem. Explode nie rozwiąże Twojego problemu, bo nie wszystkie tytuły wyglądają tak samo. Potrzebujesz wykorzystać FULLTEXT search przy MyISAM, lub algorytm o którym wspominałem wcześniej. Schemat działania jest taki, że pobierasz wszystkie rekordy, których podobieństwo jest mniejsze niż określona procentowa ilość (ile dokładnie, nie wiem - sam sprawdź - Ja tylko podaję dobry sposób podejścia do tego problemu..). Działać i działać to dwie inne sprawy - rób jak chcesz, ale partactwo potrafi zrobić każdy. -------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:58 |