Avatar billede loukas Mester
04. maj 2002 - 23:20 Der er 14 kommentarer og
1 løsning

Order by ???

Jeg har lavet følgende søgning, og vil gerne have at den viser de hits der matcher 'strTest' først.
Hvordan f..... gør jeg ???


Lidt Kode:

strTest = (Request.Form("Keyword"))
strKeyword = split(Trim(Request.Form("Keyword")), " ")

       
        Select Case UBound(strKeyword)
       
        Case "0"
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' order by titel desc"
        Case "1"
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' " '2 ord i søgningen
        Case "2"
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' and description like '%" & strKeyword(2) & "%' " '3 ord i søgningen
        Case Else
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' and description like '%" & strKeyword(2) & "%' " 'mere end 3 ord i søgningen
        End Select
Avatar billede _just4fun_ Nybegynder
04. maj 2002 - 23:50 #1
"select 1 as 'myOrder', * from [power] where description like '%" & strTest & "%'" & vbcrlf & _
"union" & vbcrlf & _
"select 2 as 'myOrder', * from [power] where description like '%" & strKeyword(0) & "%'" & vbcrlf & _
"order by myOrder, titel desc"
Avatar billede loukas Mester
05. maj 2002 - 00:04 #2
Jeg sætter det ind således:

strTest = (Request.Form("Keyword"))
strKeyword = split(Trim(Request.Form("Keyword")), " ")

       
        Select Case UBound(strKeyword)
       
        Case "0"
            strSQL =    "select 1 as 'myOrder', * from [power] where description like '%" & strTest & "%'" & vbcrlf & _
"union" & vbcrlf & _
"select 2 as 'myOrder', * from [power] where description like '%" & strKeyword(0) & "%'" & vbcrlf & _
"order by myOrder, titel desc"
        Case "1"
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' " '2 ord i søgningen
        Case "2"
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' and description like '%" & strKeyword(2) & "%' " '3 ord i søgningen
        Case Else
            strSQL = "select * from power where description like '%" & strTest & "%' OR '%" & strKeyword(0) & "%' and description like '%" & strKeyword(1) & "%' and description like '%" & strKeyword(2) & "%' " 'mere end 3 ord i søgningen
        End Select
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 00:12 #3
Jeg kan ikke overskuehvor den wrappe , men den skal ihvertfald ende ud med:
-------
select 1 as 'myOrder', * from [power] where description like '%desc%'
union
select 2 as 'myOrder', * from [power] where description like '%keyw%'
order by myOrder, titel desc
-------
Avatar billede loukas Mester
05. maj 2002 - 00:13 #4
Jeg får fejl:

The ORDER BY expression (myOrder) includes fields that are not selected by the query. Only those fields requested in the first query can be included in an ORDER BY expression.
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 00:16 #5
sorry...
Jeg kan ikke overskuehvor den wrappe , men den skal ihvertfald ende ud med:
-------
select 1 as myOrder, * from [power] where description like '%desc%'
union
select 2 as myOrder, * from [power] where description like '%keyw%'
order by myOrder, titel desc
----------
Avatar billede loukas Mester
05. maj 2002 - 00:33 #6
Hmm, jeg forstår ikke lige hvad der sker, mne jeg prøver at rode lidt med det    :-)
Avatar billede loukas Mester
05. maj 2002 - 00:47 #7
Kan ikke få det til at virke :-(

Fejlen er:
Microsoft JET Database Engine error '80004005'

The ORDER BY expression (myOrder) includes fields that are not selected by the query. Only those fields requested in the first query can be included in an ORDER BY expression.
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 00:56 #8
der skal kun være EEn linje (efter alle unions) med:
order by myOrder, titel desc
Avatar billede loukas Mester
05. maj 2002 - 01:03 #9
Er ikke helt med.
Ser det her ikke fornuftigt ud ??

strSQL =  "select 1 as 'myOrder', * from [power] where description like '%strTest%'union select 2 as myOrder, * from [power] where description like '%strKeyword%' order by myOrder, titel desc"
Avatar billede loukas Mester
05. maj 2002 - 01:08 #10
Kan jeg ikke bare skrive det hele i EEn linie ??
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 01:09 #11
strSQL =  "select 1 as myOrder, * from [power] where description like '%strTest%' union select 2 as myOrder, * from [power] where description like '%strKeyword%' order by myOrder, titel desc"
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 01:11 #12
jo, skriv det bare i en linje. jeg synes bare det er lettere at læse på den anden måde :-)
Avatar billede loukas Mester
05. maj 2002 - 01:41 #13
Når jeg prøver med den her:

strSQL =  "select 1 as myOrder, * from [power]
where description like '%strTest%'
union
select 2 as myOrder, * from [power] where description like '%strKeyword(0)%' and description like '%" & strKeyword(1) & "%'
order by myOrder, titel desc"



Får jeg fejl, en ny dog:

Microsoft JET Database Engine error '80040e21'

Cannot use Memo, OLE, or Hyperlink Object field 'url' in the SELECT clause of a union query.

/tests/search.asp, line 131
Avatar billede proaccess Nybegynder
05. maj 2002 - 08:03 #14
Du kan gå en anden vej... tilret alle dine linier til:

"select (description like '%" & strTest & "%') AS testTrue, * from power...  --forskelligt indhold--  ...ORDER BY testTrue, titel DESC"

og lad resten være urørt!
Avatar billede proaccess Nybegynder
05. maj 2002 - 08:03 #15
skulle jo egentlig være et svar ;0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester