首页 > 解决方案 > 使用 where in 子句 mysql 查询选择五个特定行和另一个随机行获取限制 10

问题描述

我想显示十条记录。

例如

select * FROM users WHERE id (5,8,9,6,3) 
    UNION
SELECT * FROM users  ORDER BY RAND() LIMIT 10 

现在我想从用户表中随机选择另一行,但在 ids 中,另一个随机行得到五个。

是否可以在单个查询中完成。我尝试使用 union all 但我没有得到 10 个不同的行。

谢谢

标签: mysqlsqleloquent

解决方案


这对我来说很好用..

 SELECT * FROM users ORDER BY (user_id IN(5,8,9,6,3)) DESC, RAND() LIMIT 0,10 

如果简单地输入条件是行不通的。所以放一个子查询。这就是查询的样子。

SELECT * FROM users ORDER BY (user_id = (select user_id FROM users WHERE 
the_condition)) DESC, RAND() LIMIT 0,10

推荐阅读