Вот пока получилось так.
update `cases`
cross join (select @rownumber := 0) r
set `ordered` = (@rownumber := @rownumber + 1)
--------------------------
Но проблема в том что нужно чтобы обновляло по списку отсортированному `ordered` ASC
пробовал добавить что то типа
WHERE `cases`.`id` IN (
SELECT `cases`.`id` FROM `cases`
ORDER BY `cases`.`ordered` ASC
)
Уважаемые гуру MYSQL, подскажите как сделать правильно?
------
Вот код который делает то что нужно кучей запросов.
public function normalize(){
$item=0;
$arr=$this->db->squery('SELECT `ordered`,`id` FROM `cases` order by `ordered` ASC',true);
if ($arr){
foreach ($arr as $k=>$v){
$this->db->query('UPDATE `cases` SET `ordered`='.intval($item).' WHERE `id`='.intval($v['id']).' ');
$item++;
}
}
}