2016-09-13 2 views
0

제발 내 문제는 MySQL에서 도와주세요. 열의 값이 같은 경우 자동 증가 값을 다른 값으로 변경하는 방법 .. 예 :Mysql : 자동으로 다른 열을 기반으로 한 열을 증가

테이블에 새 값을 삽입하는 경우. x_id가 1 인 경우 내 ID는 1입니다. 내 ID가 .. 1입니다 x_id 후 2 인 경우

이 내 예상 reult (ID가 자동 증가.입니다).

enter image description here

내 나쁜 영어 죄송합니다. 감사합니다. :)

+0

샘플 데이터가 주어지면 예상되는 결과는 무엇입니까? 조금 혼란스러워 ... – sgeddes

+0

나는 내 질문을 이미 편집했다 .. – Shen

+1

이 기능은 MyISAM에서 사용할 수 있지만 InnoDB에서는 사용할 수 없다. –

답변

0

정확하게 이해하면 x_id을 계산하고 싶습니다. 그렇다면 행을 으로 지정하는 열이 필요합니다.

select t.id, 
     (select count(*) from t t2 where t2.id = t.id and t2.?? <= t.??) as x_id 
from t; 

??의 순서를 지정하는 컬럼을위한 :

그리고, 하나의 방법은, 서브 쿼리 상관을 사용하는 것이다.

0

autoincrement 값은 주로 MySQL의 기본 키에 사용됩니다. id 컬럼에 PK를 추가 할 수 없기 때문에 (값이 중복되어) 아주 잘못된 것을하고있는 것입니다.

물론 예상 값을 반환하는 함수를 만들 수는 있지만 개인적으로는 신경 쓰지 않을 것입니다. 이 드문 것을 발명하기 전에 디자인을 다시 생각하십시오.

e.e. 이러한 객체가 동일한 기본 키를 공유하지 않아야한다면 왜 동일한 테이블에 저장됩니까?

관련 문제