按特定列的数据自动递增

时间:2014-10-09 07:22:06

标签: mysql database

在下表中,

category | feeds | content
==========================
1          1       something
1          2       bar
1          3       foo
2          1       blah
2          2       um
1          4       things

我应该如何独立工作auto_increment(以'类别'区分)?

提前致谢。

2 个答案:

答案 0 :(得分:1)

说到oracle我们有ROW_NUMBER() OVER PARTITION BY语句但是对于Mysql来说,实现这个语句仍然很棘手。最有可能的是,我们将使用此实现来限制数据在组之间的降序/升序。

在这里,您将使用类似的实现作为参考:

SELECT @row_number:=CASE WHEN @category=category 
THEN @row_number+1 ELSE 1 END AS feeds,@category:=category AS category, content
FROM table1, (SELECT @row_number:=0,@category:='') AS t
ORDER BY category;

SQLFiddle Link

答案 1 :(得分:0)

试试这个:

alter table [tableName] add autoID int auto_increment primary key;

此查询将添加1个新列。

结果

category | feeds | content   | autoID
=====================================
1          1       something   1
1          2       bar         2
1          3       foo         3
2          1       blah        4
2          2       um          5
1          4       things      6