Mysql更新表

问题描述:

如何更新表并使用该ID列中每个条目的ID号创建列?Mysql更新表

表目前是这样的:

city  
------------- 
    New York 
    Los Angeles 
    London 
    Belgrade 

我需要在这个表中的列,将有每一个将被列城ASC责令全市的ID号。

喜欢的东西:

id | city 
---------------- 
    1 | Belgrade 
    2 | London 
    3 | Los Angeles 
    4 | New York 

我能做到这一点使用MySQL查询或者我需要使用PHP和MySQL吗?

ALTER TABLE table_name 
ADD column_name column-definition; 

所以在你的情况下,其

ALTER TABLE cities 
ADD id int auto-increment; 
+0

我不知道这将创建一个ID列,将被市列值进行排序... – Galz

你会想要追溯启用该表自动递增添加标识列。

查询会是这个样子:

ALTER TABLE city ADD id INT NOT NULL AUTO_INCREMENT KEY 

但是我不知道这是要回去和所有的ID,用于您填写,您可能需要编写一个进程或另一个简单查询来填充它们,但是这会为您提供希望前进功能的列。

+0

这将填补现有行,但不一定根据城市列的字母顺序排列。 – Galz

如果此时表格未按城市名称排序,最简单的方法是创建一个新表格,然后删除旧表格并重命名。

CREATE TABLE new (
id INT NOT NULL AUTO_INCREMENT, 
city VARCHAR(255) NOT NULL); 

INSERT INTO new (city) 
SELECT city FROM old_table ORDER BY city; 

DROP TABLE old_table; 
RENAME TABLE new TO old_table;