Avatar billede simsen Mester
26. april 2007 - 14:41 Der er 3 kommentarer og
1 løsning

Ideer til søgning efterlyses

Hej,

Jeg er ikke helt klar over, hvordan jeg skal gribe det an, derfor jeg spørger herinde.....

Jeg har en søge side, hvor jeg har forskellige felter der kan søges på;

Et tekstfelt (hvor brugeren kan taste et eller andet)
---Denne skal søge på flere kolonner i tabellen

Et tekstfelt (hvor brugeren kan taste et eller andet)
---Denne skal søge på en bestemt kolonne i tabellen

En dropdown (hvor brugeren kan vælge kategori)
---Denne søger på kategori kolonnen i tabellen

En dropdown (hvor brugeren kan vælge land)
---Denne søger på lande kolonnen i tabellen

osv

Jeg kan jo gå den slaviske vej, og spørge på alle mulige kombinationer og så lave min select ud fra det.....

men er der ikke nogen smartere måde?

mvh
simsen :-)
Avatar billede neoman Novice
26. april 2007 - 14:53 #1
Jeg har set noget "smart" et eller andet sted på nettet, hvor man ved at lege lidt med Mull (måske DBNull) osv, kunne konstruere en SQL Select, som fandt ALLE posterne, hvis der ikke var angivet nogen værdi for søgeparameteren, ELLER, fandt kun posterne for søgeparameteren, hvis denne var forskellig fra NULL.  Har ikke helt styr på SQL'en , men prøver lige at finde den - såfremt dette faktisk er hvad du spurgte om.
Avatar billede neoman Novice
26. april 2007 - 15:11 #2
tada : http://www.xaprb.com/blog/2005/12/11/optional-parameters-in-the-where-clause/

How to simulate optional parameters in SQL

This article explains how to write WHERE clauses that accept optional parameters, reducing the need for separate queries. I have seen a lot of SQL code where the SELECT is duplicated many times, but the WHERE clause is different in each one, and only one will execute. It’s easy to factor out the differences in the WHERE clause. For example, consider the following code, assuming two optional parameters to the query:

if @param1 is not null
    select * from table1 where col1 = @param1
else
    select * from table1 where col2 = @param2

This can be rewritten:

select * from table1
where (@param1 is null or col1 = @param1)
    and (@param2 is null or col2 = @param2)
Avatar billede simsen Mester
26. april 2007 - 18:47 #3
neoman

Takker - vil jeg prøve. Smid et svar og pointsene er dine

mvh
simsen :-)
Avatar billede neoman Novice
26. april 2007 - 19:21 #4
tak - check resten af artiklen - intet er gratis i denne verden ! :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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