Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用LIMIT从MYSQL中选择包含一个值为1的元素的数据_Mysql_Sql - Fatal编程技术网

如何使用LIMIT从MYSQL中选择包含一个值为1的元素的数据

如何使用LIMIT从MYSQL中选择包含一个值为1的元素的数据,mysql,sql,Mysql,Sql,我有一张表格,上面有一些试题的答案列表。每次测试只有一个答案是正确的。如何选择从mysql与限制,如3答案与一个正确的。答案是随机的 SELECT answer FROM answers WHERE correct='true' ORDER BY RAND() LIMIT 3 使用UNION ALL和子查询将有助于获得预期结果 以下查询将对您的情况有所帮助: SELECT Answer FROM ( SELECT * FROM ( SELECT Answer, 1 AS

我有一张表格,上面有一些试题的答案列表。每次测试只有一个答案是正确的。如何选择从mysql与限制,如3答案与一个正确的。答案是随机的

SELECT answer FROM answers WHERE correct='true' ORDER BY RAND() LIMIT 3

使用
UNION ALL
和子查询将有助于获得预期结果

以下查询将对您的情况有所帮助:

SELECT Answer FROM (
    SELECT * FROM (
        SELECT Answer, 1 AS ManualOrder FROM Answers WHERE Correct = 'true' AND QId = 1
        UNION ALL
        SELECT Answer, RAND() FROM Answers WHERE Correct != 'true' AND QId = 1 
    ) AS Q 
    ORDER BY ManualOrder DESC LIMIT 3
) W ORDER BY RAND()
请找到


在我的演示中,
Answer 04
是问题id
1
的正确答案,在结果集中,
Answer 04
总是以随机顺序与其他两个答案一起返回。

您可以运行两个单独的查询。类似于这样的操作:从回答中选择答案,其中correct='true'&&idquestion='1';从IDQUOTE='1'按兰德顺序()限制的答案中选择答案3@Prokul将返回正确答案作为第一个选项,其余两个选项按随机顺序返回。这不是确切的答案,但可能在某种程度上有所帮助。@Arulkumar thx,非常接近,但我需要随机回答正确的Too,除了你说答案04是正确的答案外,我们如何通过返回的内容来判断?列
正确
是否也应返回?好极了@阿鲁库玛,就是这样!工作很好。谢谢;)