1

我有一个应用程序无法更改应用程序对输出进行排序的方式。无论如何,它都想使用“排序顺序”列。

我还有一个大表,其中排序顺序目前都为零。我想根据“itemname”列的字母顺序自动填充这些字段。

表格是这样的:

id     itemname     sortorder
1       A item         0
2       Big item       0
3       Cool item      0
4       Bad item       0

我想运行一个查询使其成为这样:

id     itemname     sortorder
1       A item         10
2       Big item       30
3       Cool item      40
4       Bad item       20

这样做的最佳方法是什么?

4

1 回答 1

1
UPDATE TableName a
       INNER JOIN
      (
        SELECT  A.id, 
                A.itemName,
                @sort := @sort + 10 so
        FROM    TableName a,
                (SELECT @sort:=0) b
        ORDER   BY itemName, id
        ) b ON a.id = b.ID
SET a.sortorder = b.so
于 2013-09-20T13:56:03.680 回答