mysql - 使用 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 个不同的行。
谢谢
解决方案
这对我来说很好用..
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
推荐阅读
- java - 单击时的 JavaFx TabPane 样式
- ios - AVAudioEngine 从网络中获取数据并在有噪音或无声的情况下播放
- jquery - 如何在从 jquery ajax 调用成功返回时显示 JQuery 对话框
- java - 使用 getMiddle 和 getAt 函数实现堆栈
- javascript - 设置 cookie 的过期时间
- python - 在 Paramiko 中执行 curl 时,它的输出在 stderr,而不是 stdout
- ruby-on-rails - Ruby on Rails 6+ jquery 在视图中不起作用
- javascript - 如何使用 Ramda 解决小时格式?
- python - 根据一组条件从熊猫数据框中获取值
- xml - 使用 XSLT 删除项目