我需要从按列(比如说“用户”)随机排序的表(即“订单”)中检索行。也就是说,我需要来自同一用户的所有订单保持在一起(一个接一个),并且随机订购用户。
最佳答案
我假设您有另一个名为“users”的表,其中包含所有用户。如果没有,您仍然可以通过在订单上添加另一个 SELECT DISTINCT 子查询来完成此操作,但这会更加困惑:
SELECT orders.*
FROM orders
INNER JOIN (SELECT userid, RAND() as random FROM users) tmp
ON orders.userid = tmp.userid
ORDER BY tmp.random, tmp.userid
您需要按随机数和用户 ID 进行排序,这样如果两个用户 ID 获得相同的随机数,他们的订单就不会全部混在一起。
关于sql - MySQL - 如何在列内随机排列结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638865/