php - MySQL 在一个查询中选择具有唯一行的随机行

标签 php mysql sql

是否可以从表中随机选择 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";

通过一次查询,您将能够获得所需的结果

http://dev.mysql.com/doc/refman/5.0/en/union.html

关于php - MySQL 在一个查询中选择具有唯一行的随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636206/

相关文章:

php - Wordpress - 按日期后的多个元值排序,仅显示今天之后的日期

php - 在 PHP 中检测 cURL 超时

php - SSH 到动态远程服务器并运行命令 - Laravel 5.8

mysql 使用维度和引号对字符串进行排序

php - 检查标准的功能

php - 子查询返回多行

mysql - 多重连接和计数

sql - 使用 SQL Server 创建触发器时列名无效

sql - 如何使用带有日期条件的选择?

php - fatal error 说明 "Call to a member function bind_param() on a non-object"