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