|
| Problemer med LIKE operator Fra : MacMan |
Dato : 06-06-01 16:33 |
|
Hej,
Jeg vil gerne have at min søgefunktion kun returnerer hele ord. Dvs. at en
søgning på HUND kun skal returnere records der indeholder ordet HUND i titel
eller beskrivelse. Jeg ønsker ikke "HUNDE" eller "HUNDREDE".
Derfor har jeg lavet min SQL således:
SELECT xxx FROM Produkter WHERE (Titel LIKE '%[.,:; ?!]hunde[.,:; ?!]%' OR
Beskrivelse LIKE '%[.,:; ?!]hunde[.,:; ?!]%') ORDER BY Titel -->
- så jeg kun får returneret de steder den finder "HUND", "HUND,", "HUND."
etc.
MEN har jeg en titel der kun indeholder ordet HUND, eller starter eller
slutter med ordet "HUND" bliver dette ikke fundet, da der ikke er noget tegn
før eller efter.
Hvad kan jeg gøre?
- Morten
| |
Lauritz Jensen (06-06-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 06-06-01 20:36 |
|
MacMan wrote:
>
> Jeg vil gerne have at min søgefunktion kun returnerer hele ord.
>
> Derfor har jeg lavet min SQL således:
> SELECT xxx FROM Produkter WHERE (Titel LIKE
> '%[.,:; ?!]hunde[.,:; ?!]%' OR Beskrivelse LIKE
> '%[.,:; ?!]hunde[.,:; ?!]%') ORDER BY Titel
>
> MEN har jeg en titel der kun indeholder ordet HUND, eller starter
> eller slutter med ordet "HUND" bliver dette ikke fundet,
En løsning er:
WHERE Titel LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
OR Titel LIKE 'hunde[.,:; ?!]%'
OR Titel LIKE '%[.,:; ?!]hunde'
OR Beskrivelse LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
OR Beskrivelse LIKE '%[.,:; ?!]hunde'
OR Beskrivelse LIKE 'hunde[.,:; ?!]%'
En anden er:
WHERE ','+Titel+',' LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
OR ','+Beskrivelse+',' LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
--
Lauritz
| |
MacMan (06-06-2001)
| Kommentar Fra : MacMan |
Dato : 06-06-01 22:13 |
|
> > Jeg vil gerne have at min søgefunktion kun returnerer hele ord.
> >
> > Derfor har jeg lavet min SQL således:
> > SELECT xxx FROM Produkter WHERE (Titel LIKE
> > '%[.,:; ?!]hunde[.,:; ?!]%' OR Beskrivelse LIKE
> > '%[.,:; ?!]hunde[.,:; ?!]%') ORDER BY Titel
> >
> > MEN har jeg en titel der kun indeholder ordet HUND, eller starter
> > eller slutter med ordet "HUND" bliver dette ikke fundet,
>
> En anden er:
> WHERE ','+Titel+',' LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
> OR ','+Beskrivelse+',' LIKE '%[.,:; ?!]hunde[.,:; ?!]%'
Den synes jeg er meget, meget elegant, jeg kan bare ikke rigtig få den til
at virke:
--
WHERE (((','+Titel+',' LIKE '%[.,:; ?!]hund[.,:; ?!]%' OR
','+Beskrivelse+',' LIKE '%[.,:; ?!]hund[.,:; ?!]%')))
--
returnerer
[SQL Server]Invalid operator for data type. Operator equals add, type equals
text.
Hvor dummer jeg mig?
- Morten
| |
Lauritz Jensen (07-06-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 07-06-01 11:01 |
|
MacMan wrote:
>
> WHERE (((','+Titel+',' LIKE '%[.,:; ?!]hund[.,:; ?!]%' OR
> ','+Beskrivelse+',' LIKE '%[.,:; ?!]hund[.,:; ?!]%')))
>
> returnerer
> [SQL Server]Invalid operator for data type. Operator equals add,
> type equals text.
Det er fordi en af kolonnerne (jeg gætter på "Beskrivelse") er af typen
"text", og denne type kan åbenbart ikke bruges sammen med "+".
--
Lauritz
| |
Lauritz Jensen (07-06-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 07-06-01 11:23 |
|
MacMan wrote:
>
> > > Jeg vil gerne have at min søgefunktion kun returnerer hele ord.
>
> [SQL Server]Invalid operator for data type. Operator equals add,
> type equals text.
Det slog mig lige: Hvis du bruger sql server, hvorfor slår du så ikke
bare fritekst søgningen til? (kræver godt nok sql7 eller sql2000, men
der vel igen, der bruger 6.5 mere)
--
Lauritz
| |
Peter Lykkegaard (07-06-2001)
| Kommentar Fra : Peter Lykkegaard |
Dato : 07-06-01 16:40 |
|
"Lauritz Jensen" <lauritz2@hotmail.com> wrote in message
news:3B1F5601.3223EDFE@hotmail.com...
> MacMan wrote:
> >
> > > > Jeg vil gerne have at min søgefunktion kun returnerer hele ord.
> >
> > [SQL Server]Invalid operator for data type. Operator equals add,
> > type equals text.
>
> Det slog mig lige: Hvis du bruger sql server, hvorfor slår du så ikke
> bare fritekst søgningen til? (kræver godt nok sql7 eller sql2000, men
> der vel igen, der bruger 6.5 mere)
>
Jow, jeg har et par kunder, der kører med 6.5 - ret træls når man nu _har_
vænnet sig til 7.0
mvh/Peter Lykkegaard
| |
MacMan (08-06-2001)
| Kommentar Fra : MacMan |
Dato : 08-06-01 00:28 |
|
> Det slog mig lige: Hvis du bruger sql server, hvorfor slår du så ikke
> bare fritekst søgningen til? (kræver godt nok sql7 eller sql2000, men
> der vel igen, der bruger 6.5 mere)
Det er SQL Server 7 SP 3 ja - hvor slår man det til henne?
- Morten
| |
Lauritz Jensen (08-06-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 08-06-01 16:18 |
|
MacMan wrote:
>
> > Det slog mig lige: Hvis du bruger sql server, hvorfor slår du så
> > ikke bare fritekst søgningen til? (kræver godt nok sql7 eller
> > sql2000, men der vel igen, der bruger 6.5 mere)
>
> Det er SQL Server 7 SP 3 ja - hvor slår man det til henne?
(Vidste ikke at der var kommet en sp3. Nå, godt man ikke adminer mere)
Kig under "Full-text" i Bol. Basalt set vælger du "egenskaber" for
tabellen, vælger (noget i retning af) "add full-text index" og klikker
dig igennem wizarden.
--
Lauritz
| |
MacMan (08-06-2001)
| Kommentar Fra : MacMan |
Dato : 08-06-01 16:49 |
|
> > Det er SQL Server 7 SP 3 ja - hvor slår man det til henne?
>
> (Vidste ikke at der var kommet en sp3. Nå, godt man ikke adminer mere)
>
> Kig under "Full-text" i Bol. Basalt set vælger du "egenskaber" for
> tabellen, vælger (noget i retning af) "add full-text index" og klikker
> dig igennem wizarden.
Jeg har fundet det, men uanset hvad jeg gør, er det ikke muligt at vælge
funktionen (den er grå). Iflg. BOL skal komponenten "Microsoft Search" være
installeret... men hvad pokker er det for en? Alt er slået til i forbindelse
med installation af Option Pack'en (NT4).
- Morten
| |
MacMan (08-06-2001)
| Kommentar Fra : MacMan |
Dato : 08-06-01 16:55 |
|
Oh bugger... har fundet det, det var en del af SQL Server installationen.
--
- Morten
"MacMan" <nospam@nospam.com> skrev i en meddelelse
news:3v6U6.121$rs4.24873@news010.worldonline.dk...
> > > Det er SQL Server 7 SP 3 ja - hvor slår man det til henne?
> >
> > (Vidste ikke at der var kommet en sp3. Nå, godt man ikke adminer mere)
> >
> > Kig under "Full-text" i Bol. Basalt set vælger du "egenskaber" for
> > tabellen, vælger (noget i retning af) "add full-text index" og klikker
> > dig igennem wizarden.
>
> Jeg har fundet det, men uanset hvad jeg gør, er det ikke muligt at vælge
> funktionen (den er grå). Iflg. BOL skal komponenten "Microsoft Search"
være
> installeret... men hvad pokker er det for en? Alt er slået til i
forbindelse
> med installation af Option Pack'en (NT4).
>
> - Morten
>
>
| |
Jakob Andersen (08-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 08-06-01 16:54 |
|
"MacMan" <nospam@nospam.com> wrote in message
news:3v6U6.121$rs4.24873@news010.worldonline.dk...
> installeret... men hvad pokker er det for en? Alt er slået til i
forbindelse
> med installation af Option Pack'en (NT4).
Det er på SQLserveren den ikke er slået til.
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
|
|