2012-08-11 2 views
0

무작위 순서로 상위 16 개 결과 (순위라는 필드로 정렬 됨)를 반환하도록 데이터베이스를 쿼리하려고합니다.MySQL : 무작위 순서로 상위 16 개 결과를 반환하십시오.

반환 된 (및 정렬 된) 16 개의 결과를 PHP를 사용하여 PHP가 사용할 배열을 조정하여 쉽게 바꿀 수 있습니다. 쿼리 자체에서이 작업을 직접 수행하는 쉬운 방법이 있는지 궁금합니다.

답변

2

는 힌트

select * from 
(
    select * from your_table 
    order by rank 
    limit 16 
) x 
order by rand() 
+0

감사를보십시오. –

+0

이 쿼리는 항상 쿼리에서 사용하는 인덱스를 기반으로 동일한 16 개의 결과를 반환하지 않습니까? –

+0

@AdrianCornish : OP가 상위 16 개 값을 ('랭크 (rank)'로) 원한다면 그 값을 뒤섞습니다. –

관련 문제