mysql 결과를 두 개의 열로 정렬하지만 "구멍" 열이 있음
P粉118698740
P粉118698740 2023-09-11 12:14:50
0
1
372

제 초기 상황은 다음과 같습니다.

으아아아

다음 스키마를 통해 이 테이블을 생성할 수 있습니다.

으아아아

목표는 열에 언급된 정확한 위치에서 각 행에 NULLforcedRank列的行放置在此forcedRank이 포함되지 않도록 하는 것입니다. 예상되는 렌더링은 다음과 같습니다:

으아아아

보시다시피 NULL이 아닌 경우 NULL이 아닌 행이 차지하지 않는 위치에서forcedRank列排序的位置。当 NULL 行仍然按legacyRank열을 기준으로 정렬하면 각 행이 취해지지만 강제된 행은 절대 이동되지 않습니다.

이 순서에 따라 다음과 같은ORDER BY中使用CASE WHEN구문을 사용해 보았습니다.

으아아아

하지만 결과는 내 기대에 미치지 못했습니다.

으아아아

그렇다면legacyRank열 순서를 이동하지 않고 강제 순위 행 이상으로 만들려면 어떻게 해야 할까요?

P粉118698740
P粉118698740

모든 응답 (1)
P粉141925181

NULL不能像您需要使用IS那样进行比较,或者在您的情况下使用IS NOT

으아악
레거시랭크 강제 순위
0 비어있음
1 비어있음
4 1
6 2
3 비어있음
5 비어있음
2 6
7 비어있음

바이올린

첫 번째 답변으로는 정답이 나오지 않으니까요.

새 강제 순위보다 커지도록 원래 숫자에 소수점을 추가하여 순서를 변경했습니다.

순서를 유지하고 숫자가 기존 순위보다 작아지도록 하며 다음과 같은 결과를 얻습니다

으아악
레거시랭크 강제 순위
0 비어있음
4 1
1 비어있음
6 2
3 비어있음
5 비어있음
2 6
7 비어있음

바이올린

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!