Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 한 행을 삭제하고 다른 행을 올바른 ID로 재정렬하시겠습니까?

<시간/>

개념을 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> Create table ReorderSortDemo -> ( -> UserId int -> ), 쿼리 OK, 영향을 받은 행 0개(0.57초)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

<미리>mysql>ReorderSortDemo 값에 삽입(14);쿼리 OK, 1행 영향(0.13초)mysql> ReorderSortDemo 값에 삽입(4);쿼리 OK, 1행 영향(0.10초)mysql> ReorderSortDemo 값에 삽입( 6);쿼리 OK, 1행 영향(0.11초)mysql> ReorderSortDemo 값에 삽입(3);쿼리 OK, 1행 영향(0.09초)mysql> ReorderSortDemo 값에 삽입(8);쿼리 OK, 1행 영향( 0.11초)mysql>ReorderSortDemo 값에 삽입(18);쿼리 OK, 1행 영향(0.08초)mysql> ReorderSortDemo 값에 삽입(1);쿼리 OK, 1행 영향(0.12초)mysql> ReorderSortDemo 값에 삽입( 11);쿼리 OK, 1행 영향(0.08초)mysql> ReorderSortDemo 값에 삽입(16);Query OK, 1행 영향(0.09초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> ReorderSortDemo에서 *선택;

다음은 출력입니다.

+--------+| 사용자 ID |+--------+| 14 || 4 || 6 || 3 || 8 || 18 || 1 || 11 || 16 |+--------+9행 세트(0.00초)

먼저 테이블에서 한 행을 삭제한 다음 업데이트 명령을 사용하여 다른 행을 재정렬합니다. 쿼리는 다음과 같습니다 -

mysql> ReorderSortDemo에서 삭제(UserId=8;Query OK, 영향을 받는 행 1개(0.20초)

삭제 후 테이블 레코드를 다시 한 번 확인해보자. 쿼리는 다음과 같습니다 -

mysql> ReorderSortDemo에서 *선택;

출력은 다음과 같습니다

+--------+| 사용자 ID |+--------+| 14 || 4 || 6 || 3 || 18 || 1 || 11 || 16 |+--------+8행 세트(0.00초)

다음은 다른 열을 재정렬하는 쿼리입니다.

mysql> update ReorderSortDemo -> set UserId=UserId-1 -> 여기서 UserId> 8;Query OK, 영향을 받는 4개 행(0.22초) 일치하는 행:4개 변경됨:4개 경고:0

테이블 레코드를 다시 한 번 확인해보자. 쿼리는 다음과 같습니다 -

mysql> ReorderSortDemo에서 *선택;

출력은 다음과 같습니다

+--------+| 사용자 ID |+--------+| 13 || 4 || 6 || 3 || 17 || 1 || 10 || 15 |+--------+8행 세트(0.00초)