例如一个无序号的表
SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM (SELECT @rownum:=0) r, table_name ORDER BY ord DESC ;
这样可以在sql排序结果上显示序号,这么把这个显示的序号写到 table_name.num字段上
mysql  排序序号mysql排序序号

解决方案 »

  1.   

    建一个相同表结构的temp表,假设原表就一列col1
    insert into temp(num,col1)
    SELECT @rownum:=@rownum+1 AS rownum, table_name .col1
    FROM (SELECT @rownum:=0) r, table_name  ORDER BY a descdrop table table_nmae;
    alter table temp rename table_name;
      

  2.   

    UPDATE table as t, 
        (SELECT id, @row := @row+1 as num FROM `table`,(select @row := 0) as r WHERE `type` = 32
            ORDER BY score desc ) as k 
    SET t.ord=k.num 
    WHERE d.`type` = 32 AND t.id=k.id