Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Sorowanie według kolejności like
Forum PHP.pl > Forum > Przedszkole
sannin
Cześć,

mam zapytanie do wyszukiwarki "Nowak Ryszard". Wyszukuję takim zapytaniem:

  1. SELECT * FROM users WHERE name LIKE '%Nowak Ryszard%' OR name LIKE '%Nowak%'


Wyniki są, ale mam problem z posortowaniem. Chciałbym, aby te które zostały znalezione po całej frazie czyli "Nowak Ryszard" były na początku, a dopiero później te które zostały znalezione po frazie "Nowak". Zależy mi na tym, aby rozwiązać to bez php.

tehaha
poczytaj sobie o wyszukiwaniu pełnotekstowym ( MYSQL FULL TEXT SEARCH) tam możesz ustawić order po zgodności z hasłem
wookieb
Jeżeli zdecydujesz sie na fulltext to poczytaj http://forum.php.pl/index.php?showtopic=161392&hl=sphinx
sannin
Wszystko fajnie tylko nie bardzo kumam dlaczego przy takim zapytaniu:
Cytat
SELECT * FROM `users`WHERE MATCH (name) AGAINST ("Nowak Ryszard" IN BOOLEAN MODE)

To dostaje wyniki z Nowak, a zarazem i Ryszard. Na strony mysql nie ma praktycznie nic na ten temat.
modern-web
Spróbuj tak:

  1. SELECT * FROM `users`WHERE MATCH (name) AGAINST ('+Nowak +Ryszard' IN BOOLEAN MODE)
sannin
Strasznie ciężko jest znaleźć coś w necie na ten temat. Powiesz mi jeszcze jak to po sortować według trafności?
modern-web
Wydaje mi się, ze wystarczy Ci taki dopisek:

  1. ORDER BY MATCH (przykladowa_kolumna) AGAINST ('+Nowak +Ryszard' IN BOOLEAN MODE)
tehaha
Cytat(sannin @ 21.12.2010, 22:35:37 ) *
Strasznie ciężko jest znaleźć coś w necie na ten temat. Powiesz mi jeszcze jak to po sortować według trafności?


to chyba słabo szukałeś, bo w manualu masz pełny przykład z opisem: http://dev.mysql.com/doc/refman/5.0/en/ful...l-language.html

  1. SELECT id, body, MATCH (title,body) AGAINST ('Security implications of running MySQL as root') AS score FROM articles WHERE MATCH (title,body) AGAINST ('Security implications of running MySQL as root') ORDER BY score DESC

sannin
Dzięki smile.gif Przeglądałem to, ale z moim angielskim słabo biggrin.gif i nigdy bym nie pomyślał, że to to.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.