2012-08-23 2 views
5

가능한 중복 :
how to select random unique records on each execution of the SQL Querymysql 데이터베이스에서 10 개의 임의의 고유 레코드를 쿼리하는 방법은 무엇입니까?

내가 그 구조의 데이터베이스가 :

id int 
image_name varchar(200) 
category_id int 

약 200 레코드가이 ID는 고유하며, 약 20 종류가있다 , 그리고 그들 사이에 나의 일이 분류됩니다.

UNIQUE category_ids가있는 10 개의 레코드를 제공하는 쿼리를 얻을 수 있도록 도와 주시겠습니까?

답변

7
select DISTINCT(category),id,image_name FROM images 
    WHERE id= 
    (FLOOR(RAND() * 
      (SELECT COUNT(*) FROM images) 
     ) 
    ); 
+0

잘 했어,하지만 ID를 항상 개수와 일치하지 않을 수 있습니다? – Clint

2
SELECT DISTINCT(category),id,image_name FROM images ORDER BY RAND() LIMIT 10 
1
SELECT DISTINCT category_id,id,image_name FROM images ORDER BY RAND() LIMIT 10 
관련 문제