【发布时间】:2011-06-11 08:15:51
【问题描述】:
所以我有一个封面流样式的图像轮播,由类似的查询填充
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 个随机记录?
// EDIT WITH REVISED QUERY 使用 Adrian Serafin 的回答:
(SELECT * FROM `imageTable` ORDER BY RAND() LIMIT 0, 6)
UNION
(SELECT * FROM `imageTable` WHERE `id` = 'foo' OR `id` = 'bar' OR `id` = 'baz')
【问题讨论】: