select message from MessagesList where SchemeName="like" or SchemeName!="like" ORDER BY Rand() limit 5;
我总是没有得到可靠的输出。我只想要一个消息用于该方案,其余4个不应该在该方案中。目的是为多选题系统提供服务,用户为每个方案选择正确的问题。
答案 0 :(得分:0)
您需要UNION
来组合两个单独的查询:
(SELECT message FROM MessagesList WHERE SchemeName='like')
UNION ALL
(SELECT message FROM MessagesList WHERE SchemeName!='like' ORDER BY RAND() LIMIT 4)
ORDER BY RAND() -- to ensure correct answer is randomly positioned in resultset
答案 1 :(得分:0)
如果您只有一条“喜欢”的消息,则可以一步完成:
select m.*
from messageslist m
order by (SchemeName = 'like') desc, rand()
limit 5;
如果要在SQL中随机化结果,则需要一个额外的子查询。