2016-09-10 12 views
0

Привет, я хочу добавить в таблицу столбец с идентификатором Incremental, но я хочу, чтобы этот идентификатор увеличивался, зависит от другого столбца.Добавить инкрементный идентификатор в таблице зависит от другого столбца

Это мой стол

Я новичок в Mysql. я хочу, чтобы добавить столбец в таблице со значением в зависимости от другого значения столбца в той же таблице .for примере я company_table, как показано ниже:

 code | name  | type | 
     ---------------------------- 
     AAA | AAAAA  | A | 
     BBB | BBBBB  | A | 
     CCC | CCCCC  | C | 
     DDD | DDDDD  | D | 
     EEE | EEEEE  | D | 

Хочу добавить идентификатор для инкрементного типа А. Пример

code | name  | type | ID | 
    ---------------------------------- 
    AAA | AAAAA  | A | 1 | 
    BBB | BBBBB  | A | 2 | 
    CCC | CCCCC  | C | NULL| 
    DDD | DDDDD  | D | NULL| 
    EEE | EEEEE  | D | NULL| 

Любая идея? Благодаря!

+0

Вы хотите добавить порядковый номер, а не 'auto_increment' – Drew

+0

, вам нужно показать вывод' show create table company' (или как бы там ни было настоящее имя) и сделать и [изменить] и вставить его – Drew

+1

Почему вы хотите это сделать? Какую проблему он решает? Вы не можете просто придумать решения, если сначала не определяете проблему. –

ответ

0

Вы можете сделать это с помощью переменных:

select t.*, 
     (case when type = 'A' then @rn := @rn + 1 end) as id 
from t cross join 
    (select @rn := 0) params 
order by code; 

Примечание: таблицы SQL представляют неупорядоченные наборы. order by необходим, чтобы гарантировать упорядочивание строк. На основе ваших данных выглядит, что первый столбец определяет порядок.

РЕДАКТИРОВАТЬ:

То же основная идея может быть использована для столбца в таблице. Если у вас нет колонки:

alter table t add column id int; 

Тогда:

set @rn := 0; 

update t 
    set id = (@rn := @rn + 1) 
    where type = 'A' 
    order by ??; 

Если вы заботитесь о упорядочивания значений, а затем положить соответствующий столбец в предложении order by. В противном случае значения будут правильными, но их порядок будет неопределенным.

+0

Я хочу создать столбец в таблице – ZizouJd

Смежные вопросы