Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL][PHP] Wyszukiwanie z sortowaniem 2 warunkowym?
Coolbob
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
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:


  1. SELECT *, (title LIKE "%szukane%") + (tresc LIKE "%szukane%") AS trafnosc FROM artykuly ORDER BY (title LIKE "%szukane%" + tresc LIKE "%szukane%") DESC


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
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 16:58