mySQL-根据另一列的alpha自动填充排序器列

mySQL-根据另一列的alpha自动填充排序器列,mysql,sql,auto-populate,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”列

我还有一张大桌子,里面的排序者目前都是零。我想根据“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
我想运行一个查询,使其如下所示:

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
最好的方法是什么

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

  • 你用什么来考虑一个共同的项目,一个大项目,一个很酷的项目和一个坏的项目?你用的就是这些名字吗?卢卡斯,没有:)我只是在编测试数据。我想,我是在试图搞笑。(不是很成功。)但是你会基于每个
    项目名来填充
    排序器
    ,还是你有一定的条件来填充它?@Lucas,没有条件。我只是希望排序器与另一列的现有alpha排序相匹配。如果可以,我只会对itemname进行排序,但我无法更改显示数据的应用程序。我们的数字朋友在下面回答了。你用什么来考虑一个共同的项目,一个大项目,一个很酷的项目和一个坏项目?你用的就是这些名字吗?卢卡斯,没有:)我只是在编测试数据。我想,我是在试图搞笑。(不是很成功。)但是你会基于每个
    项目名来填充
    排序器
    ,还是你有一定的条件来填充它?@Lucas,没有条件。我只是希望排序器与另一列的现有alpha排序相匹配。如果可以,我只会对itemname进行排序,但我无法更改显示数据的应用程序。我们下面的一位朋友已经回答了这个问题。Fiddle似乎不得不将“A”和“ID”小写,但它确实起了作用!谢谢:)Fiddle似乎不需要将“A”和“ID”小写,但它起了作用!谢谢:)