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.
7 svar · 379 visningar · startad av Joakim
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?
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.
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.
I vilken programmeringsmiljö (t.ex. PHP) gör du uppdateringarna? Kan det inte vara där felet ligger?
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.
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 kan med andra ord vara av intresse att se relevant Perl-kod.
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..