В таблице, как показано ниже,

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

Как мне сделать, чтобы auto_increment работал независимо (по категории)?

Заранее спасибо.

0
Hoon 9 Окт 2014 в 11:22

2 ответа

Лучший ответ

Когда дело доходит до 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

1
Logan 9 Окт 2014 в 08:34

Попробуй это :

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
0
marc_s 31 Авг 2016 в 13:58