SELECT에 의해 반환된 결과에 연속 의사 행 번호 할당
AUTO_INCREMENT, INT UNSIGNARED 인덱스 필드가 있는 테이블이 있습니다.시간이 지남에 따라 테이블에서 엔트리가 삭제되어 테이블에 "구멍"이 생겼습니다.이전에는 인덱스 필드를 사용하지 않고 테이블에서 다른 테이블로 엔트리를 복사하고 이전 테이블을 삭제하고 후자의 이름을 이전 테이블로 변경했습니다.
최근 우리는 이 계획에 의지하고 있다.
SET @row_number = 0;
SELECT *, (@row_number:=@row_number + 1) AS pseudo_row_num FROM myTable;
첫 번째 열로 의사 행 번호를 표시해야 한다는 점을 제외하면 이 방법은 매우 잘 작동합니다.
MySQL 구문 오류는 다음과 같습니다.
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num, * FROM myTable;
MySqls 파서는 다른 것을 기대하므로 테이블의 이름을 지정하십시오.
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num,mytable.* FROM myTable;
언급URL : https://stackoverflow.com/questions/68415739/assigning-contiguous-pseudo-row-numbers-to-results-returned-by-select
'source' 카테고리의 다른 글
| Asyncio.gather와 Asyncio.잠깐만요. (0) | 2022.11.02 |
|---|---|
| MySql Processlist가 "절전" 항목으로 채워져 "너무 많은 연결"이 발생합니까? (0) | 2022.11.02 |
| 그래들 의존관계 그래프에서 '->'(화살표)는 무엇을 의미합니까? (0) | 2022.11.02 |
| 느린 쿼리 로그(MariaDB)에 시간이 많이 걸린다 (0) | 2022.11.02 |
| 목록에서 첫 번째 항목을 제거하려면 어떻게 해야 합니까? (0) | 2022.11.02 |