programing

MariaDB ROW_NUMBER(주문 번호 포함)가 올바르게 주문되지 않음

linuxpc 2023. 6. 30. 22:08
반응형

MariaDB ROW_NUMBER(주문 번호 포함)가 올바르게 주문되지 않음

메뉴 항목을 해당 언어 메시지 내용별로 정렬하기 위해 간단한 쿼리를 설정했지만 이상하게도 행 번호가 올바르게 설정되지 않습니다.질문은 다음과 같습니다.

SET @idx = 0;
SELECT (@idx:=@idx + 1) AS neworderindex, a.id, a.messagecontent FROM (
    SELECT m.id, l.messagecontent
    FROM app_menuitem m 
    INNER JOIN app_language l ON m.id = l.messagekey AND l.locale = 'it'
    WHERE m.parent_id = 'some.parent.id'
    ORDER BY l.messagecontent
) a;

하위 쿼리를 먼저 실행해보니 결과가 올바르게 정렬되어 있습니다. @idx 변수에 무슨 일이 일어나고 있는지 모르겠습니다.

창 기능 사용:

SELECT ROW_NUMBER() OVER (ORDER BY l.messagecontent) as neworderindex,
       m.id, l.messagecontent
FROM app_menuitem m INNER JOIN
     app_language l
     ON m.id = l.messagekey AND l.locale = 'it'
WHERE m.parent_id = 'some.parent.id'
ORDER BY l.messagecontent;

이 기능은 MariaDB 10.2.0과 함께 2016년에 릴리스되었습니다.

언급URL : https://stackoverflow.com/questions/65491292/mariadb-row-number-with-order-by-not-ordering-correctly

반응형