---
title: "Sökning genom Multiselect till SP?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/154843-sökning-genom-multiselect-till-sp"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SteveP"
published: "2006-12-13T14:32:42.000Z"
updated: "2006-12-14T13:44:57.000Z"
replies: 3
views: 463
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/154843-sökning-genom-multiselect-till-sp"
---

# Sökning genom Multiselect till SP?

## #1 — SteveP, 2006-12-13T14:32Z

Jag har en vanlig söksida där man fyller i några fält och sedan submittar.
Värdet i fälten tas emot i en sträng och sedan skickas den som en parameter till en Stored Procedure som gör själva sökningen.

Inga konstigheter.

```
VarFirstName = Request.Form("VarFirstName")
VarLastName = Request.Form("VarLastName")

SQL = "sp_getaddresspriority_swe '" & VarFirstName & "','"  & VarLastName & "'"
SET RS = Connect.Execute(SQL)
```

Men hur gör man om man har ett multiselect fält där användaren exempelvis väljer 3 värden?

```
<SELECT NAME="Brick" MULTIPLE SIZE="7">
<OPTION VALUE="Brick1">Brick1</OPTION>
<OPTION VALUE="Brick2">Brick2</OPTION>
<OPTION VALUE="Brick3">Brick3</OPTION>
<OPTION VALUE="Brick4">Brick4</OPTION>
<OPTION VALUE="Brick5" >Brick5</OPTION>
<OPTION VALUE="Brick6">Brick6</OPTION>
<OPTION VALUE="Brick7">Brick7</OPTION>
</SELECT>
```

Säg nu att användaren skriver "Stefan" i VarFirstName fältet och "Andersson" i VarLastName fältet och sedan väljer Brick2, Brick4 och Brick6 i multiselecten och sedan submittar, då är tanken att den ska söka på användare med Namnet "Stefan Andersson" som ligger i Brick2, Brick4 eller Brick6.

Hur gör man detta i ASP samt SQL (SP) ?

Permalänk: https://www.webforum.nu/p/154843

## #2 — Peter S, 2006-12-13T14:50Z

Bland flera lösningar:

```
varFirstName = "Stefan"
varLastName  = "Andersson"
varCombined  = varFirstName & " " & varLastName
varLikeStr = ""
for each opt in request.form("Brick")
    varLikeStr = varLikeStr & varCombined & " like '%" & opt & "%' or "
next
if varLikeStr <> "" then varLikeStr = left(varLikeStr,len(varLikeStr)-4)

response.write varLikeStr
```

Permalänk: https://www.webforum.nu/p/1909688

## #3 — emission, 2006-12-13T20:59Z

Stored Procedures är direkt olämpliga för frågor med flervärdesparametrar och/eller dynamiska frågor, så min starkaste rekommendation är att man håller sig ifrån SP för sådant. Om någon SP-religiös chef kräver att du använder SP så kan du lösa det genom att låta SP:n ha en drös med extra inparametrar, eller sätta ihop värdena till en kommaseparerad lista (med extra komman i början och slutet) och använda en fråga i stil med:

```
....
WHERE 
@commastring LIKE '%,Brick1,%' AND Brick1=@firstname + ' ' + @lastname
OR
@commastring LIKE '%,Brick2,%' AND Brick2=@firstname + ' ' + @lastname
OR
@commastring LIKE '%,Brick3,%' AND Brick3=@firstname + ' ' + @lastname
....
```

Men, som sagt, Stored Procedures är optimerade för anrop som inte är särskilt föränderliga, så undvik dem gärna i detta fall.

Permalänk: https://www.webforum.nu/p/1909807

## #4 — SteveP, 2006-12-14T13:44Z

Ni missförstod nog vad jag var ute efter.
Det berodde nog på min dåliga förklaring.

Låt mig förklara igen.

Säg nu att användaren skriver "Stefan" i VarFirstName fältet och "Andersson" i VarLastName fältet och sedan väljer Brick2, Brick4 och Brick6 i multiselecten och sedan submittar, då är tanken att den ska söka på "Stefan" i Firstname kolumnen, "Andersson" i LastName kolumnen och "Brick2", "Brick4" eller "Brick6" i Brick kolumnen.

Jag vill helst använda mig av en SP eftersom jag redan gjort en SP som är klar då jag får med själva multiselect biten.

Permalänk: https://www.webforum.nu/p/1910037

---

Tråden på webben: https://www.webforum.nu/amne/asp/154843-sökning-genom-multiselect-till-sp
