mySQL - 基于另一列的alpha自动填充排序顺序列

时间:2013-09-20 13:47:37

标签: mysql sql auto-populate

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

我还有一个大表,其中排序器目前都是零。我想根据“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

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

1 个答案:

答案 0 :(得分: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