我有一个数据库。我想更新它的一列。该列应包含根据另一列的字母顺序升序排列的唯一整数。
抱歉不清楚,我想要这样的整数:
1 ACC 501
2 BCC 501
3 GCC 601
4 FCC 601
是否有一种相当简单的方法可以使用 mysql 或 sql 查询设置此排名/顺序?
您需要的是 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
创建另一个与原始表具有相同架构的表以及新列。新列应该是自动编号。在该表中执行 INSERT...SELECT。新列将填写您想要的值。
就像亚历克斯所说的,你想创建一个新表
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;