2012-08-11 57 views
0

我想查询我的数据库,以随机顺序返回,例如,前16位有序结果(按字段排序)。MySQL:以随机顺序返回top 16结果

我可以轻松地通过使用php来调整PHP将使用的数组来调整返回(并排序)的16个结果。我想知道是否有一种简单的方法直接在查询中完成此操作。

回答

2

尝试

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

谢谢你的提示。 – 2012-08-11 03:00:30

+0

不会总是根据查询使用的索引返回相同的16个结果吗? – 2012-08-11 03:01:14

+0

@AdrianCornish:OP希望排名前16位的值(通过'rank'),然后洗牌,这个解决方案就是这么做的。 – 2012-08-11 03:02:49