우리는 테이블, 된 table_1이 새로운 순위 열 버그 :삽입
DATA
1
2
3
4
5
NULL
우리는 데이터 열 다음
DATA,RANK
1,1
2,2
3,3
4,4
5,5
NULL,0
에 따라 RANK 열을 생성하려는 우리의 코드입니다
ALTER TABLE ` TABLE_1`
ADD COLUMN `RANK` DOUBLE NOT NULL AFTER `DATA`;
INSERT INTO TABLE_1
SELECT B.DATA,
CASE WHEN B.DATA IS NULL THEN 0 ELSE @number := @number + 1
END RANK
FROM TABLE_1 B, (SELECT @number := 0 AS BOO) C
ORDER BY B.RANK;
위의 쿼리는 RANK 열에 만 0을 생성합니다.
우리가 다음과 같이 ALTER 표 않고, 따라서 쿼리를 실행하고 INSERT INTO 경우 17,451,515,DATA,RANK
1,0
2,0
3,0
4,0
5,0
NULL,0
그러나, HeidiSQL는 위의 스크립트는 테이블을 생성 할 것이다 우리가
SELECT B.DATA,
CASE WHEN B.DATA IS NULL THEN 0 ELSE @number := @number + 1
END RANK
FROM TABLE_1 B, (SELECT @number := 0 AS BOO) C
ORDER BY B.RANK;
찾고있는 테이블을 반환합니다 우리 테이블 변경/INSERT INTO가 작동하지 않는 이유는 어떤 전문가는 계몽 할 수
DATA,RANK
1,1
2,2
3,3
4,4
5,5
NULL,0
찾는거야?
는 SQL 바이올린은 여기에 있습니다 : 내부와
http://sqlfiddle.com/#!9/d2837/2
가입 할 수 있습니다. 더 빨리 도움을받을 수는 없으며, 질문을 읽기가 더 어렵게 만듭니다. 아무 이유없이 놀랐을 때 무례하고 성가시다. CAPS LOCK이 걸려 있지 않은 것은 확실합니다. 질문의 일부 텍스트를 제대로 처리했기 때문입니다. 중지하십시오. 감사. –
왜 DOUBLE ?????? – Strawberry