ah sei te... haha! Scusa per il topic con PHP, ma quella soluzione sembra non funzionare! La mia tabella è questa :
codice:
CREATE TABLE `items` (
`id` int(11) unsigned NOT NULL auto_increment,
`trackid` varchar(255) NOT NULL,
`side` varchar(255) NOT NULL,
`side_pos` char(2) NOT NULL default '#',
`pos` int(11) NOT NULL,
`hh` char(2) NOT NULL,
`mm` char(2) NOT NULL,
`ss` char(2) NOT NULL,
`atl` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20229 DEFAULT CHARSET=utf8
Quindi ho provato con :
codice:
update items as z inner join (
SELECT x.id, x.trackid, x.rank AS `order`
FROM (SELECT t.id, t.trackid
CASE
WHEN @trackid = t.trackid THEN @rownum := @rownum + 1
ELSE @rownum := 1
END AS rank,
@trackid := t.trackid
FROM items t
JOIN (SELECT @rownum := NULL, @trackid := -1) r
ORDER BY t.id, t.trackid) x
) y
set z.order = y.order
where z.id = y.id
ma mi dice che c'è un errore vicino al CASE...