是否可以从表中随机选择 x 行,其中一行必须是一个查询中的特殊行(从而具有特殊的字段值)?
基本上,我想要创建的是一个猜谜游戏,其中您有 x 数量的问题,以及 x 数量的可能(复选框可选)答案!
这就是我当前选择答案的方式...有 2 个查询
$answers = 4; // This is the max amount of answers
//只是为了测试,question_id 是手动设置的
$query = "SELECT * FROM `answers` WHERE `question_id` = 0 AND `correct` != 1 ORDER BY RAND() LIMIT " . ($answers - 1) . "";
$query = "SELECT * FROM `answers` WHERE `question_id` = 0 AND `correct` = 1 LIMIT 1";
“question_id”告诉我们正在讨论哪个问题,“正确”只是告诉该字段是否是正确答案
那么是否可以在一个查询中从表中随机选择 x 行,其中其中一行必须是“正确的行”?
最佳答案
可以使用UNION?
$answers = 4;
$query = "SELECT * FROM `answers` WHERE `question_id` = 0 AND `correct` != 1 ORDER BY RAND() LIMIT " . ($answers - 1) . "";
$query .= " UNION ";
$query .= "SELECT * FROM `answers` WHERE `question_id` = 0 AND `correct` = 1 LIMIT 1";
通过一次查询,您将能够获得所需的结果
关于php - MySQL 在一个查询中选择具有唯一行的随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636206/