---
title: "byta plats på fältinnehåll."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/122205-byta-plats-på-fältinnehåll"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ConnyFox"
published: "2005-02-11T07:47:43.000Z"
updated: "2005-02-11T12:58:42.000Z"
replies: 8
views: 312
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/122205-byta-plats-på-fältinnehåll"
---

# byta plats på fältinnehåll.

## #1 — ConnyFox, 2005-02-11T07:47Z

Ok jag hade en bugg i min webshop som ställde till med att personnr (t.ex 840206-xxxx) och email (t.ex <apa@apa.nu>) hamnade i varandras vält i databasen på vissa ställen.

hur gör jag för att byta tillbaka på ett smidigt vis?!
kanske hör bättre hemma i asp?!

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

## #2 — toha, 2005-02-11T08:24Z

Nåt sånt här månne?

UPDATE
    Tabell
SET
    PersonNr = Epost,
    Epost = PersonNr

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

## #3 — aasah, 2005-02-11T08:31Z

> **toha skrev:**
>
> Nåt sånt här månne?
> 
> UPDATE
>     Tabell
> SET
>     PersonNr = Epost,
>     Epost = PersonNr

Det där skulle inte jag våga pröva (med mindre än att LarsG eller något annat vandrande lexikon ;) skrev det)! Rimligtvis sätter väl SQL den ena posten först, och då blir det liktydigt med:
PersonNr = Epost,
Epost = Epost // För det står ju då i personnummer enligt föregående kommando.

Dessutom skrev ConnyFox att sammanblandningen skett på **"vissa ställen"**, medan ovanstående förslag byter överallt! :o

Jag tror att jag skulle skrivit ut värdena och ändrat rad för rad om det inte är hundratals rader det rör sig om. (Alltså genom att ange värdena.)

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

## #4 — LarsG, 2005-02-11T08:40Z

Det skall fungera att göra så enligt SQL-standarden. Dock har t.ex. Mysql (förvånad?) gjort fel i sin implementation då de gör så som aasah beskriver.

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

## #5 — ConnyFox, 2005-02-11T08:40Z

jo men om det där funkar e det ju bara o lägga till en where bla bla.. men funkar det tro? :D

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

## #6 — aasah, 2005-02-11T08:46Z

Enligt LarsG ("det vandrande lexikonet ;)"):
Det funkar inte om du har MySQL.
Det SKA funka enligt standard.

Så frågan är, vad har du för databas? Följer den standard?

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

## #7 — toha, 2005-02-11T08:47Z

Ok kan ju bara kolla om det ligger ett '@' i personnr-fältet och byta ut de raderna. 

Självklart ska man inte köra den update-satsen utan att testa först. Starta en transaktion, kolla hur det ser ut och rulla tillbaka. När det verkar funka kör man bara update-satsen.

```
BEGIN TRAN

UPDATE
	Person
SET
	PersonNr = Epost,
	Epost = PersonNr
WHERE
	PersonNr LIKE '%@%'

SELECT * FROM Person WHERE PersonNr LIKE '%@%'

ROLLBACK TRAN
```

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

## #8 — ConnyFox, 2005-02-11T08:50Z

jag använder mysql, antar det inte funkar då.. damnit.. hur skall jag då göra? :D

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

## #9 — Brimba, 2005-02-11T12:58Z

Gäller det samtliga poster? I så fall kan du ju enkelt byta namn på fältet.

I annat fall kan du skapa en tempkolumn, eller en temptabell kanske är ännu smidare. Skyffla datan dit. Gör ändringen på den kolumnen du inte har sparad och flytta sedan från din temptabell till kolumnen där det skall vara. Men allt beror på förutsättningar, vad du vet och hur många poster det gäller etc.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/122205-byta-plats-på-fältinnehåll
