>  기사  >  데이터 베이스  >  비순차적 값을 사용하여 MySQL 기본 인덱스의 번호를 오름차순으로 다시 매기려면 어떻게 해야 합니까?

비순차적 값을 사용하여 MySQL 기본 인덱스의 번호를 오름차순으로 다시 매기려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-25 11:26:30708검색

How can I renumber a MySQL primary index with non-sequential values in ascending order?

정렬 데이터의 기본 인덱스 번호 다시 매기기

질문:

다음과 같은 MySQL 테이블이 있습니다. 값이 순차적으로 번호가 매겨지지 않은 기본 인덱스입니다. 어떻게 순서대로(1, 2, 3, ...) 번호를 다시 매길 수 있나요?

답변:

다른 방법도 사용할 수 있지만 대체 접근 방식은 다음과 같습니다. 임시 테이블을 생성할 필요가 없습니다.

해결책:

다음 SQL 문을 실행합니다.

<code class="sql">SET @i=0;
UPDATE table_name SET column_name=(@i:=@i+1);</code>

설명:

  • 첫 번째 줄은 세션 변수 @i를 0으로 초기화합니다.
  • 두 번째 줄은 table_name이라는 테이블에 대해 UPDATE 쿼리를 수행합니다.
  • UPDATE 내 쿼리에서 SET 절은 기본 인덱스 열인 column_name에 새 값을 할당합니다.
  • 세션 변수 @i를 1씩 증가시켜 새 값을 계산합니다.
  • 쿼리가 실행되면 @ i 변수는 계속 증가하므로 기본 인덱스 값의 번호가 순차적으로 다시 매겨집니다.

위 내용은 비순차적 값을 사용하여 MySQL 기본 인덱스의 번호를 오름차순으로 다시 매기려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.