使用where in子句mysql查询选择五个特定行,另一个随机行获得限制10

时间:2019-06-12 12:59:31

标签: mysql sql eloquent

我想显示十条记录。

  

例如

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

现在,我希望从用户表中随机选择另一行,但ID为in,另一行随机为5。

是否可以在单个查询中执行。我尝试使用全部工会,但我没有得到10个不同的行。

谢谢

1 个答案:

答案 0 :(得分:1)

这对我来说很好。

 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