Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
Witam
Napisałem system tagów , w którym rolę odgrywają dwie tabele: strony(id,nazwa,opis...)i tagi(id,nazwa,nazwaoryginalna,idstrony). Oprócz samych słów przechowywane są też frazy kilku słowne (np. "gry", "darmowe gry" itp.). Problem pojawia się w przypadku, kiedy strona posiada dwa podobne tagi np. "tanie mieszkania" oraz "tanie domy" i w momencie użycia systemu tagów i szukania słowa pasującego do "tanie" w wyszukiwarce mamy zapytanie WHERE tagi.nazwa LIKE "tanie%" i przez to pokazuje w wynikach dwa razy tę samą stronę. Czy można użyć lepszą metodę? Cy jedynym rozwiązaniem jest zaprzestanie użycia znaku % i w ten sposób szukając frazy "tanie mieszania" rozbijamy frazę i używamy zapytania Where tagi.nazwa LIKE "tanie" OR "mieszkania" OR "tanie mieszkania" ? Wydaje mi się, że tego typu metoda może okazać się nieoptymalna w przypadku długich fraz. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
dzięki, jednak problem pojawia się w przypadku użycia "SELECT DISTINCT count(s.id) AS ile...", gdyż w tym przypadku nie uwzględnia DISTINICT (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Czy można w jakiś sposób zrobić, aby uwzględniało count() ?
|
|
|
|
adam882 problem z systemem tagów 27.06.2009, 14:05:38
soomal Zamiast SELECT... dajesz SELECT DISTINCT ...
BTW,... 27.06.2009, 15:11:24
maly_swd pokaz zapytanie, wystarczy chyba zmienic grupowani... 27.06.2009, 18:22:59
adam882 Zapytanie wygląda tak:
[SQL] pobierz, plainte... 27.06.2009, 19:27:17 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 23:59 |