Kom ihåg mig?
Home Menu

Menu


Scalar functions i Access-SQL

Ämnesverktyg Visningsalternativ
Oläst 2005-05-02, 20:02 #1
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
För kortare version, hoppa till sista stycket

Har börjat fundera lite på min sidas interna sökfunktion. Det är ju trots allt så att de resultat som listas i den är minst lika viktiga som att komma högt upp på externa sökmotorer typ Google. Jag har helt enkelt börjat logga alla sökningar (det är inte så jättemånga, så det går att överblicka dem manuellt om man kollar några gånger om dagen).

Har kommit fram till att i ganska många fall så har vi det som besökaren letar efter, men han hittar det inte eftersom sökverktyget inte är tillräckligt smart. Ett problem som förekommer är att kunden använder irrelevanta ord som t.ex. "med" "och" o.s.v., men det är ju enkelt avhjälpt genom en lista med ord som filtreras bort. Det som verkar vara det stora problemet är vid sökning på artikelnummer och modellbeteckningar. Tillverkare verkar älska att slänga in diverse olika tecken som - / . och andra hemskheter. Problemet är att det inte används konsekvent, och att dessutom kräva att besökaren skall känna till på vilken form ett artikelnummer skall skrivas är orimligt. I dagsläget har jag därför gjort så att om en sökning inte resulterar i några träffar så skriver den ut lite söktips, bland annat att ersätta alla punkter och streck med mellanslag vilket löser det senare problemet.

Nu till min fråga. Om en användare söker på exempelvis "abc123" men produktens artikelnummer i databasen skrivs som "abc-123", hur gör jag för att få en träff? Jag vill inte skriva om formatet på artikelnumret i databasen. Principiellt vill jag alltså: "SELECT * FROM table WHERE REPLACE(artnr,'-','')='abc123'". Jag har Access-databas.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-03, 09:25 #2
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
SELECT * FROM table WHERE REPLACE(artnr,'-','')='abc123'
Vad är det för fel på det? verkar ju vara en klockren lösning. Se bara till att byta i input också.
Exempel:
Kod:
SELECT *
From table
WHERE Replace(replace(artnr,"-",""),".","") = Replace(replace(INPUT,"-",""),".","")
eg0master är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:42.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017