---
title: "gammalt värde plus sträng?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/61474-gammalt-värde-plus-sträng"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "nill"
published: "2002-12-07T16:06:31.000Z"
updated: "2003-01-19T22:42:06.000Z"
replies: 11
views: 298
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/databaser-sql/61474-gammalt-värde-plus-sträng"
---

# gammalt värde plus sträng?

## #1 — nill, 2002-12-07T16:06Z

varför fungerar itne detta. det fungerade med access.

```
VarDammit = "UPDATE users SET relationer = relationer & '" & tal & ";' WHERE ID = 256"
Connect.Execute VarDammit,,128
```

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

## #2 — ampy, 2002-12-07T17:29Z

Jag misstänker att tal är en variabel, isf ska det vara så här:

```
VarDammit = "UPDATE users SET relationer = relationer & '"&tal&"' & ';' WHERE ID = 256"
Connect.Execute VarDammit,,128
```

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

## #3 — LarsG, 2002-12-07T18:47Z

```
VarDammit = "UPDATE users SET relationer = concat(relationer,'" &  tal & "',';') WHERE ID = 256"
Connect.Execute VarDammit,,128
```

Håller du och på och gör något som att spara flera värden i en kolumn så bör du designa om tycker jag.

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

## #4 — nill, 2002-12-08T14:12Z

hur menar du då Lars G?    designa om.  för det är flera världen i en kolumnt jag håller på med.

ska man alltid  har '" & variabel & "'  istället för  " & variabel & "  ???    för det senare har jag för mig att man skulle använda med access om variabeln var ett tal

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

## #5 — LarsG, 2002-12-08T17:31Z

Jo, det normala om man vill modellera en m-n relation är att skapa 3 tabeller. T.ex 

personer:

namn! Andra kolumner
\-------------------
LarsG!  Andra värden

SkivInnehav:

Namn! Skiva
\----------------
LarsG!  1
LarsG!  2
LarsG!  3

Skivor ! Titel
\------------
1 ! Adolf fredriks Gosskör feat Lennart Swahn sjunger julsånger
2 ! Beast of the beasts
12 ! Best of Arne Weise

Om man nodellerar det som du har gjort så skulle det bli

person:

Namn! Skivor
\--------!-------
LarsG ! 1;2;12

Om jag nu gör mig av med skiva 2 så blir det en rätt så krånglig sql-sats för att uppdatera den strängen som ligger i kolumnen skivor. 
Den blir också ineffektiv eftersom det inte går att använda index. Det blir likadant för alla sökningar.

Däremot om man lagrar varje sak separat så blir det en väldigt enkel delete för att ta bort enskilda element.

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

## #6 — LarsG, 2002-12-08T17:37Z

> ska man alltid har '" & variabel & "' istället för " & variabel & " ??? för det senare har jag för mig att man skulle använda med access om variabeln var ett tal

 

Om det är ' eller inte beror på i vilket sammanhang det används, inte på innehållet i variabeln. Funktionen concat tar strängar som argument. 

Nu är både access och Mysql väldigt slarviga när det gäller typkontroll så 

```
concat('x',1,';')
```

fungerar.  Jag tycker i alla fall att man skall undvika implicita typningar.

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

## #7 — nill, 2002-12-08T18:25Z

tror inte att flera tabeller är en lösning för mitt problem. Hade det så innan och och det blev över 7000 poster med bara en fjärdedel av användarna jag har nu.

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

## #8 — LarsG, 2002-12-08T18:37Z

> tror inte att flera tabeller är en lösning för mitt problem.

  Det tror jag. 7000(\*4) poster är inget problem för ett DBHS.

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

## #9 — nill, 2002-12-09T15:45Z

ett problem med CONCAT 
(från mysql-dokumentationen)
mysql\> SELECT CONCAT('My', 'S', 'QL');
        \-\> 'MySQL'
mysql\> SELECT CONCAT('My', NULL, 'QL');
        \-\> NULL
mysql\> SELECT CONCAT(14.3);
        \-\> '14.3'

om värdet i fältet är NULL fungerar itne Concaten...  hur fixar jag det?     värdet är ju det första gången ett värde ska sättas in.

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

## #10 — LarsG, 2002-12-09T15:57Z

```
update t 
      set c = CONCAT('My', coalesce(c,''), 'QL') 
 where id = 4711
```

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

## #11 — nill, 2003-01-16T17:47Z

ok.. NU har jag kört lite mer mitt "343;44;2224;"-sätt ett bra tag. Men min sida har växt enormt och är inte säker på att det är den mest optimal lösningen längre.  för varje  "343;" måste jag hämta en post med det id-numret och i det flesta fall blir det  50 såna olika posthämtningar för varje gång varje besökare besöker en sida.   Jag kan tänka mig att det tar rätt mycket på servern.

Så, skulle LarsG's   sätt med en andra tabell vara bättre då?

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

## #12 — nill, 2003-01-19T22:42Z

men arr..
kan någon svara på vilket som är bäst..        250 000 poster  eller    50 separata databashämtningar varje på sida?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/61474-gammalt-värde-plus-sträng
