---
title: "Att söka i flera kolumner"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/158187-att-söka-i-flera-kolumner"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "bluespot"
published: "2007-03-15T08:33:14.000Z"
updated: "2007-03-18T12:01:37.000Z"
replies: 13
views: 729
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/158187-att-söka-i-flera-kolumner"
---

# Att söka i flera kolumner

## #1 — bluespot, 2007-03-15T08:33Z

Jag har en access-databas med en tabell som heter (Coacher), i den tabellen finns flera kolumner, hur får jag sökningen att ske från ett sökfält (Fritext)?

Kolumnerna som jag vill söka i heter:
Namn
Adress
Ort

Jag har provat med Like utan något bra resultat.

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

## #2 — voigtann1, 2007-03-15T08:39Z

```
dim SQL,sok
sok = replace("" & request("sokord"), "'", "''")
SQL = "SELECT * FROM Coacher WHERE [name] LIKE %'" & sok & "' OR [Adress] LIKE %'" & sok & "' OR Ort LIKE %'" & sok & "';"
```

???

redigerat efter @nders :P

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

## #3 — @nders, 2007-03-15T08:44Z

Oj, här klantar vi oss både till höger och vänster, voigtann! :)

```
dim SQL,sok
sok = replace(request("sokord"), "'", "''")
SQL = "SELECT * FROM Coacher WHERE [name] LIKE '%" & sok & "%' OR [Adress] LIKE '%" & sok & "%' OR Ort LIKE '%" & sok & "%'"
```

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

## #4 — voigtann1, 2007-03-15T08:46Z

jag ska nog sluta att skriva inlägg helt enkelt ;)

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

## #5 — bluespot, 2007-03-15T09:27Z

Tack så mycket för hjälpen, funkade perfekt.

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

## #6 — bluespot, 2007-03-16T09:12Z

Efter ha tänkt lite längre så skulle jag också vilja tillsammans med frisökningsrutan även ha en lista som genereras ur databasen, problemet är att om det finns fler poster som heter samma sak så kommer dom ju självklart upp i listan, kan man utesluta att visa dubletter?

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

## #7 — @nders, 2007-03-16T09:13Z

Ja, använd SELECT DISTINCT när du hämtar datat så blir du av med dubletter.

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

## #8 — bluespot, 2007-03-17T19:09Z

Nu ser koden ut såhär:

```
dim SQL,sok
sok = replace(request("sokord"), "'", "''")
SQL = "SELECT * FROM Coacher WHERE [Namn] LIKE '%" & sok & "%' OR [Adress] LIKE '%" & sok & "%' OR Ort LIKE '%" & sok & "%'"
```

 

Men nu vill jag att från söksidan där en lista finns med Ort ska kunnas sökas på också. Alltså ska man kunna söka Ort ur en lista eller/och tillsammans med fritextsökningen.

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

## #9 — bluespot, 2007-03-18T10:27Z

> **@nders skrev:**
>
> Ja, använd SELECT DISTINCT när du hämtar datat så blir du av med dubletter.

```
SELECT DISTINCT Namn, Adress, Ort FROM Coacher
```

 visar ändå dubletter.

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

## #10 — K@llen, 2007-03-18T10:40Z

Distinct använder sig av hela select-listan. Så i detta faller beror det på vad du menar med dubletter. Du kan ju få två namn med Knut om de har olika orter exempelvis. Då är raderna inte lika.

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

## #11 — bluespot, 2007-03-18T11:02Z

Nu går Namn, Adress, Ort in i varsin lista som jag vill använda i ett sökformulär, kan man inte få bort dubletterna i varje lista då?

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

## #12 — @nders, 2007-03-18T11:09Z

Om du ska ha de i tre olika listor i sökformuläret; ställ tre SQL-frågor med DISTINCT eller sortera bort dubletterna i ASP-koden.

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

## #13 — bluespot, 2007-03-18T11:52Z

Tack, nu förstår jag hur det hänger ihop.

Nu har jag bara ett problem kvar. Det är sidan som tar emot sökformuläret.

```
dim SQL,mottagning,utbildning,omrade
namn = replace(request("fm_namn"), "'", "''")
adress = replace(request("fm_adress"), "'", "''")
ort = replace(request("fm_ort"), "'", "''")
SQL = "SELECT * FROM Coacher WHERE Namn LIKE '" & namn & "' AND Adress LIKE '" & adress & "' AND Ort LIKE '" & ort & "'"
```

 

Som det fungerar nu måste man välja exakt rätt i alla tre listorna på söksidan för att ett sökresultat ska visas, men min tanke var att man också bara ska kunna välja t ex ett namn ur Namn-listan så ska alla "Kalle" visas.

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

## #14 — @nders, 2007-03-18T12:01Z

1) Varför använder du LIKE utan att ange wildcards i SQL-frågan? Använd = för exakta jämförelser, och LIKE när du med wildcards ska göra sökningar i text.
2) Lägg bara med de villkor du vill ha med i SQL-frågan.

```
namn = replace(request("fm_namn"), "'", "''")
adress = replace(request("fm_adress"), "'", "''")
ort = replace(request("fm_ort"), "'", "''")
c=0
SQL = "SELECT * FROM Coacher "
if namn <> "" then
	if c = 0 then SQL = SQL & "WHERE " else SQL = SQL & "AND "
	SQL = SQL & "Namn = '" & namn & "' "
	c = 1
end if
if adress <> "" then
	if c = 0 then SQL = SQL & "WHERE " else SQL = SQL & "AND "
	SQL = SQL & "Adress = '" & adress & "' "
	c = 1
end if
if ort <> "" then
	if c = 0 then SQL = SQL & "WHERE " else SQL = SQL & "AND "
	SQL = SQL & "Ort = '" & ort & "' "
	c = 1
end if
```

c är en kontrollvariabel för att hålla koll på om vi ska ha and eller where.

Dylik kod går att skriva på massor av olika sätt, jag tog ett enkelt. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/158187-att-söka-i-flera-kolumner
