Just nu i M3-nätverket
Gå till innehåll

SQL-sats


Patric Johansson

Rekommendera Poster

Patric Johansson

Jag har gjort en söksida.

På den har jag ett formulär med <input>s.

Om jag skulle söka och något värde skulle vara tomt, finns det då något sätt som gör att den inte kollar i den kolumnen där det värdet hämtar sin information ifrån?

 

Eller hur kan jag annars göra?

För jag vill inte att alla <input>'s ska vara obligatoriska.

 

Tack på förhand!

 

/ProTeuS

Resistance is futile. You will be assimilated.

- citat från ”Star Trek - First Contact”
Länk till kommentar
Dela på andra webbplatser

Om jag skulle söka och något värde skulle vara tomt, finns det då något sätt som gör att den inte kollar i den kolumnen där det värdet hämtar sin information ifrån?

Efter att ha läst om det där (noga) 5-6 ggr så tror jag att jag slutligen förstått vad i helsike du pratar om. :D

 

Du har alltså en SQL-sats som ser ut som följande (förenklat förstås):

...WHERE kolumn1 LIKE/= <input>1 AND kolumn2 LIKE/= <input>2 AND kolumn3 LIKE/= <input>3

 

...och om <input>2 inte är ifylld så vil du inte ta med kolumn2 i sökningen?! Har jag rätt?

 

Om det är så så skulla jag lösa det genom att bygga upp SQL-satsen "dynamiskt" i en for-slinga med en if-sats i. Om ett <input> är tomt så tas den helt enkelt inte med i SQL-satsen.

 

Äsch jag var nog inte mycket till hjälp. Har lite svårt att förklara inatt på ett sätt som går att förstå. :)

 

 

 

Almir - ...

____________________________________________________________

-Läser Programmet för Informatik med Systemvetenskap på MDH, Västerås.-

 

Länk till kommentar
Dela på andra webbplatser

Helt rätt svar !

(Om jag fattar så gör nog alla det :-))

 

Finns enligt mig minst 4 sätt att fixa detta:

 

1) Dynamiskt skapa TSQL från ASP eller SQL i en loop som kollar efter värden.

2) Om det är LIKE-sökningar så blir tomma värden = alla värden.

3) Skriva om det med ISNULLs för att snygga upp lite.

4) Min favorit: Inte ge en användare så många möjligheter till dumma fritext-fält utan försöka styra deras sökningar.

 

/David

 

Länk till kommentar
Dela på andra webbplatser

Patric Johansson

Jag tror jag ska köra med LIKE så då löser de sig ju automatisk om det nu är så som du säger.

Tack för dina 4 sätt.

 

Länk till kommentar
Dela på andra webbplatser

Kommer funka alldeles utmärkt, men var medveten om att det är den sämsta lösningen ur en prestanda-synvinkel.

 

Du kommer ALLTID att söka i ALLA fält och i de som är blanka kommer du få ALLA rader tillbaka.

 

Så om du behöver prestanda så bör du nog använda en annan lösning, tex den som skriver dynamisk sql kod.

 

/David

 

Länk till kommentar
Dela på andra webbplatser

Patric Johansson

iofs, aja, får se hur jag löser detta...får se först va de är som ska vara sökbart...

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...