擁有表的用戶ID的工作MySql的蘭德公司選擇以不使用GROUP_CONCAT
Id
--
1
2
3
4
5
6
7
8
我想選擇帶有逗號蘭特ID分開, 我有查詢,如下所示
SELECT GROUP_CONCAT(Id) FROM `userid` order by rand(Id);
但即使使用蘭特( Id)顯示結果如下升序 1,2,3,4,5,6,7,8
預期結果應該是隨機的&個逗號分隔隨機順序,我怎麼能得到? ..
擁有表的用戶ID的工作MySql的蘭德公司選擇以不使用GROUP_CONCAT
Id
--
1
2
3
4
5
6
7
8
我想選擇帶有逗號蘭特ID分開, 我有查詢,如下所示
SELECT GROUP_CONCAT(Id) FROM `userid` order by rand(Id);
但即使使用蘭特( Id)顯示結果如下升序 1,2,3,4,5,6,7,8
預期結果應該是隨機的&個逗號分隔隨機順序,我怎麼能得到? ..
你想把order by
在group_concat()
聲明:
SELECT GROUP_CONCAT(Id order by rand())
FROM `userid` ;
'order by'是關於你得到的所有結果。而且因爲你只能得到一個結果,所以你會隨機化結果的順序。
什麼你大概可以做的是這樣的事情,但它幾乎沒有非常有效:
SELECT GROUP_CONCAT(Id) FROM (SELECT Id FROM `userid` ORDER BY rand(Id)) a
這樣你檢索所有標識的,隨機化的順序,然後GROUP_CONCAT他們。
附註:如果你沒有做更多的事情,你可能只是想檢索身份證並稍後進行隨機化?否則,你可以看看這個博客有更好的隨機檢索:http://jan.kneschke.de/projects/mysql/order-by-rand/
其示值誤差「每一個派生的表必須有它自己的別名」 – user1844933
這很容易解決,我會編輯,但請記住它只是一個提示,你可以從這裏拿着手冊? :D – Nanne
(我添加的'a'是您在執行select時獲得的表的別名) – Nanne