---
title: "Knasigt resultat av update"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/133068-knasigt-resultat-av-update"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Joakim"
published: "2005-08-21T13:01:13.000Z"
updated: "2005-08-27T08:52:05.000Z"
replies: 7
views: 409
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/133068-knasigt-resultat-av-update"
---

# Knasigt resultat av update

## #1 — Joakim, 2005-08-21T13:01Z

Tjo,

Begriper inte riktigt varför följande händer:

i en tabell med fyra kolumner är en av kolumnerna avsedd för sortering av data;

id\|produkt\|sort\|text    (förenklat exempel)

Om jag tar bort en post så vill jag sedan att de poster som har samma "grupp" och ett högra "sort" än det som raderas skall flyttas upp ett steg, alltså få minska deras värde på "sort" med 1. 

UPDATE tabell SET sort = sort - 1 WHERE sort \> raderad_posts_sort AND grupp = raderad_posts_grupp

Detta ger att ALLA poster som har högre sort än posten som raderades får samma sort som den raderade posten hade, dock bara de i samma "grupp", så rätt rader påverkas men värdet blir fel.

Kan någon förklara detta?

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

## #2 — Engine^, 2005-08-22T13:21Z

Ditt data i sort-kolumnen stämmer inte överens med vad du vill göra?

Kan du ge ett exempel på sort-data från en grupp.

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

## #3 — Joakim, 2005-08-22T15:41Z

Datat i sort-kolumnen är helt numeriskt och används av användaren för att sortera rader för olika produkter. T.ex:

(id\|produkt\|sort\|text)

1\|1\|1\|Rad ett för produkt 1
2\|1\|2\|Rad två för produkt 1
3\|1\|3\|Rad tre för produkt 1
4\|1\|4\|Rad fyra för produkt 1
5\|1\|5\|Rad fem för produkt 1
6\|2\|1\|Rad ett för produkt 2
7\|2\|2\|Rad två för produkt 2

osv..

Tar jag nu bort rad tre, alltså "Rad tre för produkt 1", vill jag ju att sort-värdet för rad fyra och fem skall minskas med ett så att det inte uppstår ett glapp i sorteringen för den gruppen, om jag omsatte exakt detta exemplet i praktiken skulle jag få att både rad fyra och fem får sort-värde 3.

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

## #4 — Peter S, 2005-08-22T17:01Z

I vilken programmeringsmiljö (t.ex. PHP) gör du uppdateringarna? Kan det inte vara där felet ligger?

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

## #5 — Joakim, 2005-08-22T17:04Z

Gör det i perl, men mySQL gör ju "uträkningarna"? Scriptet bara buffrar sort-värdet och gruppen för posten den tar bort och har det som vilkor i uppdateringen.

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

## #6 — Engine^, 2005-08-22T20:41Z

SQL-satsen du skrev först är ju helt riktig. Är den likadan som den du faktiskt använder dig av? Det verkar inte som så.

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

## #7 — Peter S, 2005-08-23T07:25Z

Det kan med andra ord vara av intresse att se relevant Perl-kod.

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

## #8 — Joakim, 2005-08-27T08:52Z

> **Engine^ skrev:**
>
> SQL-satsen du skrev först är ju helt riktig. Är den likadan som den du faktiskt använder dig av? Det verkar inte som så.

Det som förbryllar mig är att det faktiskt är den jag använder. Fattar verkligen inte varför det blir som det blir. Rätt rader påverkas  ju, känns bara som att mySQL skolkade från matten i lågstadiet..

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/133068-knasigt-resultat-av-update
