Avatar billede sbi Nybegynder
05. november 2002 - 10:32 Der er 16 kommentarer

ContainsTable

Jeg har brug for lidt hjælp med funktionen ContainsTable i SQL Server 2000.

Jeg skriver (eksempel):
SELECT *
FROM    ContainsTable (MODEL_searchTable , [text] , '("Sten*")')

Ovennævnte søgning fungere efter hensigten, den finder f.eks. "Sten" og "Stenhus" MEN hvis jeg skriver *Sten finder den ikke Mursten eller andre ord hvor ordet sten indgår et sted midt i eller til sidst i ordet.

Hvordan bruger jeg denne ContainsTable til at finde en vilkårlig streng?

/SBI
Avatar billede bennytordrup Nybegynder
05. november 2002 - 10:34 #1
Så vidt jeg kan se på dokumentationen kan du kun bruge Wildcard efterstillet.
Avatar billede hcar Novice
05. november 2002 - 10:35 #2
Skal du ikke bare sætte en stjerne FORAN Sten også?
Avatar billede sbi Nybegynder
05. november 2002 - 10:57 #3
Til Benny
Så vidt jeg kan se er denne ContainsTable brugt for at optimere performance på søgningen. Er alternativet så en alm. LIKE ?
Avatar billede bennytordrup Nybegynder
05. november 2002 - 11:01 #4
Det kunne være en mulighed. Jeg ved ikke hvad, ContainsTable gør/bruges til.

Husk så lige, at wildcard '*' så skal være '%'.
Avatar billede sbi Nybegynder
05. november 2002 - 11:16 #5
I Containstabel funktionen skal man bruge '*' i stedet for '%'
/SBI
Avatar billede bennytordrup Nybegynder
05. november 2002 - 11:17 #6
Ja, men ved LIKE skal du bruge '%'
Avatar billede pierrehusted Nybegynder
05. november 2002 - 14:49 #7
Hvad med at bruge en almindelig Contains ??


Select *
From MODEL_searchTable
Where Contains(*, '"*sten*"')


Så skulle de søge i alle de indexerede felter efter strengen sten hvorsom helst i et felt.
Avatar billede sbi Nybegynder
05. november 2002 - 16:32 #8
pierrehusted

Er det noget du har prøvet, for jeg kan ikke få det til at virke. Den opfører sig ligesom ContainsTable.

/SBI
Avatar billede pierrehusted Nybegynder
05. november 2002 - 16:40 #9
Måske er det sådan her :


Select *
From MODEL_searchTable
Where Contains(*, '*sten*')


Der er noget underligt med de der ' og " - kan bare ikke lige huske hvordan det hænger sammen.
Avatar billede sbi Nybegynder
06. november 2002 - 13:33 #10
pierrehusted

Heller ikke!
Avatar billede pierrehusted Nybegynder
06. november 2002 - 13:43 #11
Den her virker altså på min MS-SQL 2000!  Den finder poster, som indeholder bogstaverne sten et eller andet sted.


Select *
From MODEL_searchTable
Where Contains(*, '"*sten*"')


Får du en fejlmeddelelse eller kommer der bare intet resultat ??
Avatar billede sbi Nybegynder
06. november 2002 - 14:16 #12
Den viser bare ikke nogle svar
Jeg skriver:

Select *
From MODEL_searchTable
Where Contains(*, '"*a210*"')

Den kan ikke finde denne record:
BRIO BA210 533, 566MHz Intel Celeron PCI/ISA HEWLETT-PACKARD

Hvorimod, hvis jeg skriver '"ba21*"' går det fint!?

/SBI
Avatar billede pierrehusted Nybegynder
06. november 2002 - 14:24 #13
Hmm...  næh, det virker ikke....    :-(

Så ved jeg sgu ikke hvordan...
Avatar billede sbi Nybegynder
07. november 2002 - 15:19 #14
Lad os hænge på os se om der er andre der har en idé

/SBI
Avatar billede dr-kermit Nybegynder
10. november 2002 - 00:15 #15
Hejsa,

Umiddelbart vil jeg tro at det er for di din forespørgelse kun indeholder karakterere der pr. default bliver ignoreret i forbindelse med full-text søgninger!! Det er kun et forslag, ikke en løsning.

Mvh Kenneth Nielsen
Avatar billede sbi Nybegynder
10. november 2002 - 09:21 #16
Det må du uddybe nærmere...
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
Computerworld tilbyder specialiserede kurser i database-management

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