如何将具有自动递增值的列添加到mySql数据库的表中?

时间:2013-09-20 12:37:52

标签: mysql database

我有一个具有以下结构的表 -

  Col-1      Col-2     
(primary)

   234        A        
   154        B
   987        B
   374        C
   983        C
   364        C
   873        A 

我要根据Col-2值插入一个列,将 Col-3 添加到此表中,其自动递增值从0开始。对于上表,我希望值类似于 -

  Col-1      Col-2      Col-3
(primary)

   234        A           1
   154        B           1
   987        B           2
   374        C           1
   983        C           2
   364        C           3
   873        A           2

该表是静态的,因此如果可能,我想直接在 phpmyadmin 中运行查询。

任何帮助都将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用相关子查询来完成。

SELECT  A.Col1, 
        A.Col2, 
        (
            SELECT  COUNT(*)
            FROM    tableName c
            WHERE   c.Col2 = a.Col2 AND
                    c.Col1 <= a.Col1) AS RowNumber
FROM    TableName a
ORDER   BY a.Col2, RowNumber 

答案 1 :(得分:0)

根据您的规范,这是不可能的,并且需要一个触发器,它将使用COUNT(Col-2)设置Col-3的值。我认为这样可行,但要确保测试:

CREATE TRIGGER col2_count AFTER INSERT ON your_table
FOR EACH ROW SET col3 = COUNT(1) WHERE col2 = NEW.col2;