Why is ORDER BY in a FROM Subquery Ignored?

|

MySQL의 서브 쿼리에서의 order by는 경우에 따라 무의미하다.

 

MySQL은 서브쿼리의 결과 순서를 따로 메모리에 적재해 놓지 않기에 서브쿼리의 order가 메인쿼리에서는 무시됨.

 

따라서,

 

SELECT @rownum:=@rownum+1 as num, x.*
FROM (SELECT  col1, col2
             FROM TABLE1
           ORDER BY col2
           LIMIT 18446744073709551615
) X,
(SELECT @rownum:=0) r

위와 같이

서브쿼리에 LIMIT를 정해 주는 것으로 원하는 결과를 얻을 수 있다고 한다.

출처: https://amnesis.tistory.com/17 [달바라기]

출처: https://mariadb.com/kb/en/why-is-order-by-in-a-from-subquery-ignored/

'DATABASE(SQL)' 카테고리의 다른 글

Dual 테이블이란?  (0) 2021.04.19
프로시저, 트랜잭션, 배치  (0) 2021.04.16
MYSQL INSERT UPDATE (ON DUPLICATE KEY)  (0) 2020.08.21
mysql - 프로시저  (0) 2020.06.24
전자정부 프레임워크에 트랜잭션 적용하기  (2) 2020.03.31
And