拥有表userid
Id
--
1
2
3
4
5
6
7
8
我想用逗号分隔选择rand id, 我的查询如下
SELECT GROUP_CONCAT(Id) FROM `userid` order by rand(Id);
但即使使用rand(Id),它也会按升序显示结果如下 1,2,3,4,5,6,7,8-
预期结果应该是随机的&逗号分隔随机顺序,我怎么能得到? ..
答案 0 :(得分:3)
您希望将order by
放在group_concat()
声明中:
SELECT GROUP_CONCAT(Id order by rand())
FROM `userid` ;
答案 1 :(得分:1)
'order by'是关于你获得的所有结果。而且因为你只获得了一个结果,所以你将结果的顺序随机化。
你可能做的就是这样,虽然效率不高:
SELECT GROUP_CONCAT(Id) FROM (SELECT Id FROM `userid` ORDER BY rand(Id)) a
通过这种方式,您可以检索所有ID,将其顺序随机化,然后再将它们分组。
旁注:如果你没有做更多的事情,你可能只是想要检索id并稍后随机化它们?否则,您可以查看此博客以获得更好的随机检索:http://jan.kneschke.de/projects/mysql/order-by-rand/