About Data/DB
[sql] 정렬 및 랜덤 select 쿼리 예시
Tradgineer
2020. 12. 8. 15:59
[ 작업 환경 ]
Centos 7.8
MariaDB
1. SELECT 쿼리 결과값 무작위로 순서 섞어서 추출
SELECT * FROM places WHERE NAME LIKE '%studio%' ORDER BY RAND()
2. SELECT 쿼리 결과값 1차적으로 column_A라는 컬럼으로 정렬한 후, 정렬 기준 컬럼의 데이터가 같은 데이터끼리만 무작위로 순서 섞어서 추출
SELECT * FROM places WHERE NAME LIKE '%studio%' ORDER BY column_A, RAND()
column_A가 RAND() 보다 앞에 왔기 때문에 column_A에 대한 정렬 작업이 우선 진행됩니다.
만약 RAND()를 먼저 작성할 경우, 무작위로 섞은 후에 column_A에 대한 정렬이 진행됩니다.
3. SELECT 쿼리 결과값 1차적으로 column_A라는 컬럼으로 정렬한 후, 정렬된 각 범주 안의 데이터들끼리 column_B에 대한 정렬로 순서를 정하고, 마지막으로 그렇게해서 정렬된 데이터들 중 동일한 데이터들끼리 그 안에서 무작위로 순서 섞어 추출
SELECT * FROM places WHERE NAME LIKE '%studio%' ORDER BY column_A, column_B, RAND()
간단히 요약하면
column_A 정렬 -> column_B 정렬 -> 무작위
라고 보시면 됩니다.