我有个问题
SELECT name,count(*) cnt group by b order by cnt desc limit 10;
所以我会有一个清单
Name Count
test 6
test2 4
test6 1
test23 1
test4 1
问题是,cnt=1时有1000个结果,我希望随机显示它们,否则每次查询都会或多或少地显示相同的结果。我想要的是对具有相同cnt值的行进行随机排序。是可行的吗?
最佳答案
您可以在计数后按顺序使用RAND()
SELECT name,count(*) cnt from t
group by b order by cnt desc ,RAND()
limit 10;
因此,第一行将由cnt按降序排列,然后对于相同的count(cnt)值,行将随机排列
Sample demo with provided dataset
关于mysql - 分组和受限查询的随机顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24056744/