所以我有一个封面流样式的图像轮播,由类似这样的查询填充
SELECT foo FROM `imageTable` ORDER BY RAND() LIMIT 0, 12;
我的客户想向其中添加一组永久图像。由于结果的使用方式,如果我可以将这些记录作为原始查询的一部分,那将非常方便。
我试过了
SELECT foo FROM `imageTable` WHERE `id` = 'x' OR `id` = 'y'
OR `id` IS NOT NULL ORDER BY RAND() LIMIT 0, 12;
我希望带有 id 的记录一定会在结果集中,但 RAND() 不会打乱整个集合。
所以我的问题是是否有任何单个查询可以提供 x 个永久记录然后提供 y 个随机记录?
//使用 Adrian Serafin 的回答修改查询:
(SELECT * FROM `imageTable` ORDER BY RAND() LIMIT 0, 6)
UNION
(SELECT * FROM `imageTable` WHERE `id` = 'foo' OR `id` = 'bar' OR `id` = 'baz')
最佳答案
你可以试试sql中的union命令。
select random
union
select choosed
关于sql - 在单个查询中获取一些随机记录和一些特定记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4728577/