반응형
MySQL: 선택문의 임시 열을 자동으로 증가시킵니다.
MySQL을 사용하여 select 스테이트먼트에 임시 컬럼을 작성 및 자동 증분하려면 어떻게 해야 합니까?
지금까지의 내용은 다음과 같습니다.
SET @cnt = 0;
SELECT
(@cnt =@cnt + 1) AS rowNumber,
rowID
FROM myTable
WHERE CategoryID = 1
반환되는 내용:
+++++++++++++++++++++
+ rowNumber | rowID +
+++++++++++++++++++++
+ (NULL) | 1 +
+ (NULL) | 25 +
+ (NULL) | 33 +
+ (NULL) | 150 +
+ (NULL) | 219 +
+++++++++++++++++++++
하지만 나는 다음이 필요하다.
+++++++++++++++++++++
+ rowNumber | rowID +
+++++++++++++++++++++
+ 1 | 1 +
+ 2 | 25 +
+ 3 | 33 +
+ 4 | 150 +
+ ... | ... +
+++++++++++++++++++++
그러면 다음 행의 연속 번호가 표시됩니다.3
.
SELECT
(@cnt := @cnt + 1) AS rowNumber,
t.rowID
FROM myTable AS t
CROSS JOIN (SELECT @cnt := 0) AS dummy
WHERE t.CategoryID = 1
ORDER BY t.rowID ;
결과
| ROWNUMBER | ROWID |---------------------| 1 | 1 || 2 | 25 || 3 | 33 || 4 | 150 |
하지만, 만약 당신이group by
선택 문장에서요?개표가 취소됩니다.
이 경우 찾은 솔루션은 nesting select뿐입니다.
SELECT (@cnt := @cnt + 1) AS rowNumber, t.*
from
(select
t.rowID
FROM myTable
WHERE CategoryID = 1
ORDER BY rowID) t
CROSS JOIN (SELECT @cnt := 0) AS dummy
이것을 시험해 보세요.
SET @rownr=0;
SELECT @rownr:=@rownr+1 AS rowNumber, rowID
FROM myTable
WHERE CategoryID = 1
최신 버전의 MySQL에서는 MySQL Window를 사용할 수 있습니다.http://www.mysqltutorial.org/mysql-window-functions/mysql-row_number-function/
예:
SELECT ROW_NUMBER() OVER ( ORDER BY productName ) row_num,
productName, msrp
FROM products ORDER BY productName;
이 코드를 사용할 수 있습니다.나는 이것이 더 간단한 해결책이라고 생각한다.
select ROW_NUMBER() OVER ( ORDER BY id ) AS Seid, id from table1 where id<10
결과:
| Seid | id |
| 1 | 5|
| 2 | 7|
| 3 | 8|
| 4 | 9|
언급URL : https://stackoverflow.com/questions/15930514/mysql-auto-increment-temporary-column-in-select-statement
반응형
'programing' 카테고리의 다른 글
Chrome DevTools의 요소에서 발생한 이벤트를 보려면 어떻게 해야 합니까? (0) | 2022.10.31 |
---|---|
쿼리 빌더가 원시 SQL 쿼리를 문자열로 출력하려면 어떻게 해야 합니까? (0) | 2022.10.31 |
여러 개의 공백 제거 (0) | 2022.10.31 |
MySQL 테이블에서 열을 삭제하는 방법 (0) | 2022.10.31 |
sql 쿼리를 선택하여 특정 사용자의 게시물, 팔로워 및 팔로워 수를 가져옵니다. (0) | 2022.10.31 |