sql - MySQL - 如何在列内随机排列结果?

标签 sql mysql

我需要从按列(比如说“用户”)随机排序的表(即“订单”)中检索行。也就是说,我需要来自同一用户的所有订单保持在一起(一个接一个),并且随机订购用户。

最佳答案

我假设您有另一个名为“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/

相关文章:

mysql - 选择具有重复项的列中的前 5 个

sql - 条件为 "group By"的总行

c# - RoleProvider 在 C# Framework 4.0 中不再可用吗?

sql - Rails SQL 查询如果为空

php - 当值有连字符时,MySQL DELETE 不起作用

mysql - 如何将一列中的所有行乘以 3?

php - 将二进制数据从 PHP 插入 MySQL 时为什么要使用 bin2hex?

mysql查询获取在日期范围内未预订的所有房间未给出预期结果

php - JsTree delete_node() 删除子节点

mysql - 每天计算推文,按同一张表中的其他 3 列进行加权