2012-08-23 13 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 रिकॉर्ड कर रहे हैं, आईडी अद्वितीय है, और वहाँ के बारे में 20 श्रेणियां हैं , और मेरे iamges उनके बीच वर्गीकृत हैं।

क्या आप मुझे एक प्रश्न प्राप्त करने में मदद कर सकते हैं, जो मुझे यूनिक श्रेणी_आईड्स के साथ 10 रिकॉर्ड देगा?

उत्तर

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

अच्छा काम है, लेकिन यह है कि आईडी हमेशा गिनती के साथ मेल नहीं होगा संभव है? – 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 
संबंधित मुद्दे