2014-02-05 6 views
0

Это более абстрактный вопрос. Например, таблицаИсходное положение повторяющихся значений

| животных |

| кошка |

| собака |

| собака |

| кошка |

| кошка |

| собака |

Что я хочу получить:

| животных | pos |

| кошка | 1 |

| собака | 1 |

| собака | 2 |

| кошка | 2 |

| кошка | 3 |

| собака | 3 |

Конечно, животные не ограничены кошками и собаками, и повторения могут увеличиваться.

Любые указания, на которых смотреть будут очень благодарны!

+0

Что вы абстрактный PK? – Strawberry

ответ

0

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

select animal, 
case animal 
     when 'cat' then @cat:[email protected]+1 
     when 'dog' then @dog:[email protected]+1 
end as animal_row_num 
from animals, 
    (select @cat:=0, @dog:=0) animal_row_nums 

MySQL скрипку: Demo

+0

Спасибо! Это сделало бы это для двух животных. Но что, если бы было 10000 животных? – Hander

+0

Затем вы не должны использовать такое генерирование отчетов на уровне простых запросов БД, а хранимую процедуру или язык сценариев. –

+0

Я знаю, как это сделать в php, но это займет недели на больших таблицах. Я хотел создать другой столбец, который будет содержать, а не значение. Поэтому я подумал, что есть более простой способ. Я рассмотрю хранимые процедуры и приму свой ответ или обновляю вопрос. – Hander

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