1

我有一个数据库。我想更新它的一列。该列应包含根据另一列的字母顺序升序排列的唯一整数。

抱歉不清楚,我想要这样的整数:

1 ACC 501
2 BCC 501
3 GCC 601
4 FCC 601

是否有一种相当简单的方法可以使用 mysql 或 sql 查询设置此排名/顺序?

4

3 回答 3

3

您需要的是 MySQL 目前不支持的排名功能。但是,您可以像这样模拟它们:

Set @rownum := 0;

Select rnk, SomeCode, SomeNum
From    (
        Select @rownum := @rownum + 1 As rnk, SomeCode, SomeNum
        From MyTable
        Order By SomeCode Asc
        ) As Z
于 2011-06-24T21:25:09.510 回答
1

创建另一个与原始表具有相同架构的表以及新列。新列应该是自动编号。在该表中执行 INSERT...SELECT。新列将填写您想要的值。

于 2011-06-24T21:13:33.040 回答
0

就像亚历克斯所说的,你想创建一个新表

CREATE TABLE newTable(
#Table definition from current table,
id INT NOT NULL AUTO_INCREMENT
);

然后插入

INSERT INTO newTable
SELECT * FROM oldTable
ORDER BY orderColumn;

我认为您可以快速创建表

CREATE TABLE newTable LIKE oldTable;
ALTER TABLE newTable ADD COLUMN id INT NOT NULL AUTO_INCREMENT;
于 2011-06-24T21:18:53.057 回答