简体   繁体   English

是否可以只用一个SELECT随机订购“前n个”记录?

[英]Is it possible to order “first n” records randomly with only one SELECT?

Is there a way to do this without two selects ? 没有两个选择,有没有办法做到这一点?

Original query 原始查询

SELECT name,view_count  
FROM `ex`.`item` 
where status='available' order by view_count asc 
limit 40;

To display randomly 随机显示

SELECT * 
FROM (SELECT name,view_count  
      FROM `ex`.`item` 
      where status='available' 
      order by view_count asc 
      limit 40 ) AS temp 
ORDER BY RAND();

Can this be done without a second select? 可以在没有第二次选择的情况下完成吗?

Try this: 尝试这个:

SQL Fiddle: http://sqlfiddle.com/#!2/330f8/2 SQL小提琴: http ://sqlfiddle.com/#!2/330f8/2

SELECT name, view_count 
FROM `ex`.`item` 
where status='available' 
order by rand(), view_count asc limit 40;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM