webForumDet fria alternativet

sortera recordset efter "relevans"

4 svar · 265 visningar · startad av mrblonde

mrblondeMedlem sedan aug. 20012 349 inlägg
#1

hmmm... bygger en sökfunktion som gör en vanligt select * from tbl where fält LIKE '%sökord%'

Nu skulle jag vilja sortera det här recordsetet efter hur tidigt i träfftexten ordet förekommer.
Någon som har någon vettig funktion ihopknåpad för detta? Den kan returnera en array också, det funkar med.

Ex. om träff ett är "Hej och hå"
och träff två är "Hå och hej"

Så vill jag att om jag söker på "Hå" så skall de komma sorerade med träff två först och träff ett sen (och sen resten med i fallande ordning)

Hittade inget vettigt när jag sökte, men jag kanske sökte fel :)

------------------
calling me a motherfucker, saying he's gonna blow me away and blah, blah, blah, blah, blah.
National Blonde Day!

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select * from tbl where falt like '%sökord%' order by charindex('sökord',falt)

red: sql server/sybase specifik
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 05 sep 2001]

mrblondeMedlem sedan aug. 20012 349 inlägg
#3

Tack!

LarsG, du är suverän!

hmmm.... finns det något sätt även att ta order by hur ofta "sökord" förekommer i strängen?

Bara undrar, det gäller en sql server 7.
(har du något bra tips på en länk där alla sådana däringa metoder i sql finns uppradeade? charindex och sånt?)

------------------
calling me a motherfucker, saying he's gonna blow me away and blah, blah, blah, blah, blah.
National Blonde Day!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000409

Sen kan du gå vidare från denna. Det verkar bara finnas en fullständig beskrivning för SQL server 2000.

Om man vill ha antal förekomster så får man tricka till det lite

  select * from t
   where falt like '%sökord%'
  order by (len(falt)-len(replace(falt,'sökord',''))/len('sökord') desc

red: desc kanske är mer relevant i detta sammanhang

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 06 sep 2001]

mrblondeMedlem sedan aug. 20012 349 inlägg
#5

tack.

Alltid vettig info snabbt.

------------------
calling me a motherfucker, saying he's gonna blow me away and blah, blah, blah, blah, blah.
National Blonde Day!

125 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)