|
| SQL-syntaks Fra : Rikke Nyland Christe~ |
Dato : 01-05-01 20:51 |
|
Jeg prøver på at lave en søgefunktion. I første omgang ønskede jeg at lave
en avanceret søgning, hvor forskellige søgeord er underlagt kategorier (som
på et bibliotek med overkat. såsom forfatter, titel, søgeord m.m., hvorefter
der kan skrives titel, navn el. andet). Efter mange mislykkedes forsøg har
jeg nu opgivet denne søgning. Det nye jeg vil forsøge er at neutralisere
overkategorierne, hvilket betyder at der kun søges v.h.a et søgeord, som kan
søge i alle tabellens data (forfatter, title etc.). Problemet er nu at jeg
mangler en SQL-sætning, der kan gøre det muligt at søge i forskellige
kategorier. Der skal kunne søges både på Forfatter, Titel, ISBN og Søgeord.
Mit forslag ser sådant ud:
SELECT * FROM Tabel1
WHERE forfatter AND titel AND ISBN AND søgeord = 'MMColParam'
Kan AND eventuelt ændres til en slags "OR" (jeg har uden held prøvet OR!)
således at søgningen leder i alle tabellens data og ikke kun i enkelte
kategorier.
MVH
Rikke
| |
Lauritz Jensen (01-05-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 01-05-01 22:08 |
|
Rikke Nyland Christensen wrote:
>
> Jeg prøver på at lave en søgefunktion. [...] der [...] søges v.h.a
> et søgeord, som kan søge i alle tabellens data (forfatter,
> title etc.). Problemet er nu at jeg mangler en SQL-sætning, der
> kan gøre det muligt at søge i forskellige kategorier. Der skal
> kunne søges både på Forfatter, Titel, ISBN og Søgeord.
> Mit forslag ser sådant ud:
>
> SELECT * FROM Tabel1
> WHERE forfatter AND titel AND ISBN AND søgeord = 'MMColParam'
Prøv:
ord = Replace(Trim(Request("ord")), "'", "''")
sql = ""
sql = sql & "SELECT * "
sql = sql & "FROM Tabel1 "
sql = sql & "WHERE forfatter LIKE '" & ord & "' "
sql = sql & "OR titel LIKE '" & ord & "' "
sql = sql & "OR ISBN LIKE '" & ord & "' "
sql = sql & "OR [Søgeord] LIKE '" & ord & "' "
--
Lauritz
| |
Jesper Nielsen (02-05-2001)
| Kommentar Fra : Jesper Nielsen |
Dato : 02-05-01 00:29 |
|
> sql = sql & "OR [Søgeord] LIKE '" & ord & "' "
Og så skal der helst % omkring...
sql = sql & "OR [Søgeord] LIKE '%" & ord & "%';"
Så skal man ikke kende hele indholdet af et af felterne...
--
Med venlig hilsen
Jesper Nielsen
| |
Jesper Kjeldsen (03-05-2001)
| Kommentar Fra : Jesper Kjeldsen |
Dato : 03-05-01 09:24 |
|
Den holder heller ikke da man med en % foran eller bagved kræver at der er
noget. Eks. søgning efter like '%ord%' vil vise
"fj(ord)en" eller "Dette er en ordbog", men ikke "Ordbog" eller "biord"
"Jesper Nielsen" <jn@nielsenit.dk> wrote in message
news:EEHH6.1173$T22.59266@news010.worldonline.dk...
> > sql = sql & "OR [Søgeord] LIKE '" & ord & "' "
>
> Og så skal der helst % omkring...
> sql = sql & "OR [Søgeord] LIKE '%" & ord & "%';"
>
> Så skal man ikke kende hele indholdet af et af felterne...
>
>
> --
> Med venlig hilsen
> Jesper Nielsen
>
>
| |
Lauritz Jensen (03-05-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 03-05-01 15:11 |
|
Jesper Kjeldsen wrote:
>
> "Jesper Nielsen" <jn@nielsenit.dk> wrote in message
> news:EEHH6.1173$T22.59266@news010.worldonline.dk...
> > > sql = sql & "OR [Søgeord] LIKE '" & ord & "' "
> >
> > Og så skal der helst % omkring...
> > sql = sql & "OR [Søgeord] LIKE '%" & ord & "%';"
> >
> > Så skal man ikke kende hele indholdet af et af felterne...
>
> Den holder heller ikke da man med en % foran eller bagved kræver
> at der er
> noget. Eks. søgning efter like '%ord%' vil vise
> "fj(ord)en" eller "Dette er en ordbog", men ikke "Ordbog" eller "biord"
Hvilken database har du prøvet det på?
(aka. på de baser jeg kender, betyder "%" nul eller flere)
--
Lauritz
| |
Peter Lykkegaard (03-05-2001)
| Kommentar Fra : Peter Lykkegaard |
Dato : 03-05-01 16:35 |
|
"Lauritz Jensen" <lauritz2@hotmail.com> wrote in message
news:3AF166FE.65348DC@hotmail.com...
> Jesper Kjeldsen wrote:
> >
> > Den holder heller ikke da man med en % foran eller bagved kræver
> > at der er
> > noget. Eks. søgning efter like '%ord%' vil vise
> > "fj(ord)en" eller "Dette er en ordbog", men ikke "Ordbog" eller "biord"
>
> Hvilken database har du prøvet det på?
> (aka. på de baser jeg kender, betyder "%" nul eller flere)
>
Også min oplevelse
Det er dog lidt "tungt" at lave søgninger på den måde, da databasen ikke
bruger index, men laver en tablescan
mvh/Peter Lykkegaard
| |
|
|