23. november 2004 - 20:48
Der er
6 kommentarer og
1 løsning
Tekst søgning med relevans point
mkay jeg har en tabel med 3 søjler som jeg Merger via Aliasing til en enkelt søjle (¤ og @ er split tegn til senere brug)
Select (Artist &'¤'& Title &'¤'& Year &'@') as Merged
nu vil jeg så gerne konstruere en SQL sætning som viser relevans point efter hvor mange check-ord som passer til hver Merged
Jeg har en ide om at man kan Groupe de matches der kommer... og derved lave en Count til at at regne relevans ud ?
---------------------
Merged:
benny¤sjov¤2004@
benny¤ting¤2004@
benny¤halløj¤2004@
---------------------
24. november 2004 - 12:31
#4
Jeg har løst problemet selv:
If Request("text") <> "" then
session("text") = Request("text")
Q_arr = split(Request("text"))
strSQL = "Select Count(*) as maxValue,Video_ID,Song_ID,Artist,Title,Year from "
for each x in Q_arr
sqlnum = sqlnum + 1
if sqlnum > 1 then
strSQL = strSQL & " UNION ALL (Select * from Videos where (Artist & Title & Year) like '%"& X &"%')"
else
strSQL = strSQL & "(Select * from (Select * from Videos where (Artist & Title & Year) like '%"& X &"%')"
end if
next
strSQL = strSQL & " order by Title) group by Video_ID,Song_ID,Artist,Title,Year order by Count(*) desc, Artist, Title asc"
Session("SQL") = strSQL
End if
Set rs = conn.execute(Session("SQL"))
set rs_cnt = conn.execute("Select count(*) as numResults from (" & Session("SQL") & ")")
maxValue = cint(rs("maxValue"))
Do while not rs.eof
Match = "Matched: " & FormatNumber(cint(rs("maxValue"))/maxValue*100,2) & "%"
rs.movenext
loop