2012-08-23 36 views
5

thể trùng lặp:
how to select random unique records on each execution of the SQL QueryLàm thế nào để truy vấn 10 bản ghi ngẫu nhiên duy nhất trong cơ sở dữ liệu mysql?

Tôi có cơ sở dữ liệu của cấu trúc đó:

id int 
image_name varchar(200) 
category_id int 

Có khoảng 200 hồ sơ, id là duy nhất, và có khoảng 20 loại và các iamges của tôi được phân loại giữa chúng.

Bạn có thể giúp tôi nhận được truy vấn, điều này sẽ cho tôi 10 bản ghi với category_ids UNIQUE không?

Trả lời

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

Làm tốt lắm nhưng nó có thể là các ID sẽ phải lúc nào cũng phù hợp với các tính? – 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 
Các vấn đề liên quan