我有以下4个选择:
select english,type from table where type='brief' ORDER BY RAND() LIMIT 5;
select english,type from table where type='small' ORDER BY RAND() LIMIT 5;
select english,type from table where type='medium' ORDER BY RAND() LIMIT 5;
select english,type from table where type='large';
而不是进行多次查询,我宁愿将其作为一个UNION运行 - 也看到所有输出的格式相同。
我尝试了以下但是RAND()似乎不起作用。每种类型大约有10个选项,但我一直看到相同的5而不是随机返回:
select english,type from table where type='brief' LIMIT 5
UNION
select english,type from table where type='small' LIMIT 5
UNION
select english,type from table where type='medium' LIMIT 5
UNION
select english,type from table where type='large' ORDER BY type,RAND();
有关如何以真正的随机回报运行此UNION的任何建议吗?
THX
答案 0 :(得分:1)
如果您想通过整个联盟订购,您需要将联合包含在另一个选项中,如下所示:
SELECT (
select english,type from table where type='brief' LIMIT 5
UNION
select english,type from table where type='small' LIMIT 5
UNION
select english,type from table where type='medium' LIMIT 5
UNION
select english,type from table where type='large'
)
ORDER BY type, RAND();