![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam tabelę w MySQL-u z artykułami (id, tytuł, treść itd.). Zrobiłem wyszukiwarkę artykułów przeszukującą ich treść. Chciałbym teraz zmodyfikować sposób wyszukiwania aby uporządkować wyniki w ten sposób, że w pierwszej kolejności wyświetlają się artykuły, w tytule których znajduje się wyszukiwane słowo, a następnie pozostałe z sortowaniem wg trafności. Mógłbym zrobić dwa SELECT-y tylko nie wiem jak zrobić by w drugim zapytaniu nie dublowały się wyniki z pierwszego zapytania... a może jakieś złożone pojedyńcze zapytanie... Proszę o pomoc. pozdrawiam coolbob |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie masz indeksów fulltekstowych musisz skorzystać z LIKE jeśli masz to MATCH AGAINST w MySQL wystarczy by wybrać wszystkie rekordy i posortować je wg trafności.
Przy braku indeksów można użyć następującej składni:
W przypadku MATCH AGAINST odsyłam po prostu do manuala (IMG:style_emoticons/default/wink.gif) EDIT: poprawiłem pomyłke w SQL Ten post edytował Sephirus 26.09.2012, 07:39:33 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 8 Dołączył: 21.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przy większej bazie powyższe zapytanie zajedzie serwer.
Zainteresuj się wyszukiwaniem pełnotekstowym (full-text search) mozna np. joinem
albo unionem
Ten post edytował kyku 26.09.2012, 07:56:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:15 |