![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 27.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzieńdoberek,
Ostatnio dyskutowaliśmy sobie na temat "tagowania" materiałów. Doszliśmy że zrobimy osobną tabelę, w niej podamy "własciciela","identyfikator artykułu","tag". Plus oczywiście data która ma nam umilić zarządzanie. Wpadłem trochę w tarapaty ponieważ patrzę na projekt i myslę, upsss, jest problem. PODOBNE ARTYKUŁY bazując na tagach. No super, tylko jak się za to zabrać ![]() Selektem możemy wyciągnąć tagi przypisane do danego artykułu. dostaniemy powiedzmy ala ma kota białego ![]() I kurcze, jak teraz zrobić do tego "podobne" To jest pytanie, za 100 punktów. Jasnę, można zrobić SELECT xxx FROM xxx WHERE xxx LIKE '%tag1% AND LIKE '%tag2%' Ale, co mi to kurcze da ? Chyba nie posegreguje mi danych według tendencji rosnącej czyli najpierw materiały mające najwięcej "takich" tagów, potem te które będą miały tylko jeden tag ? Koncepcja, przydała by się koncepcja. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 7 Dołączył: 14.06.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Poczytaj o group by w SQLu
2. selectuj z artykuł, daj JOIN tag_artykul -------------------- zagr.am - najlepsze flash do zagrania. Codziennie.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 27.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Po przeczytaniu wielu stron tekstu, wracam wyposażony w pewien kod. Kod który winnien działać, lecz nie działa. Tj działa, ale dla tekstów >= 4 znaki. Konfiguracja serwera SQL poprawna, poniżej screen ![]() min_word_length -> 3 znaki
Kod zwraca 0 Dla porównania: WHERE ![]() Kod powyższy, który nie działa, w momencie kiedy użyje 4 znakowego kodu, rusza poprawnie. Przyznam się szczeże że nie wiem czego to jest wina. Serwe mySQL wydaje się interpretować zapis odnośnie minimalnej ilości znaków, jednakże czemu nie chcę przeszukiwać tych 3 znaków ? Czy nie macie Państwo jakiejs podpowiedzi ? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 17.05.2004 Skąd: Nowhere Land Ostrzeżenie: (0%) ![]() ![]() |
http://dev.mysql.com/doc/refman/5.1/en/ful...ine-tuning.html
Przeczytaj sobie to, co tam jest napisane. Co do długości interesują Cię zmienne ft_min_word_len i ft_max_word_len. Sprawdź sobie też stopwords. Pozdrawiam -------------------- Google prawdę mówi, względów się wyrzeka...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 27.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Racja, zapomniałem repair table.
Teraz działa. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 7 Dołączył: 14.06.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ja bym te podobne tak zrealizował:
pobierasz artykuł (powiedzmy że ma id 13) pobierasz tagi danego artykułu (powiedzmy 1 i 2) Kod SELECT a.*, COUNT(a.id) as cnt FROM artykul a
JOIN artykul_tag at on (a.id = at.a_id) WHERE at.t_id IN (1, 2) // tutaj dajesz tagi wybranego artykulu AND a.id != 13 GROUP BY a.id HAVING cnt > 0 -------------------- zagr.am - najlepsze flash do zagrania. Codziennie.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:32 |