如何从数据库中获取随机问题包括类别?

Posted

技术标签:

【中文标题】如何从数据库中获取随机问题包括类别?【英文标题】:how get random questions from database include Categories? 【发布时间】:2020-03-01 12:41:49 【问题描述】:

您好,我尝试根据多年的数学测试在 php 中制作一个简单的测验应用程序。我有这样列的数据库:

-id

-pytanie

-a

-b

-c

-d

-poprawna

-rok_id

-typ_id

我使用 rand 函数来获取随机 id,接下来我在 sql 答案中使用它来获取随机问题。 但是我不知道如何获取 radnom 问题,例如随机一个问题包括 yera_id=1

首先我使用 $numer=rand(1,1800) 我的sql select是这样的\

select pytanie, a,b,c,d, nazwa, rok_liczba, nazwa_typu, poprawna from pytania  left join rok on rok.id= pytania.rok_id left join typ on typ.id=pytania.typ_id where typ_id=1  and  pytania.id=".$numer.""

当我添加到 sql select 时,其中 year_id=1" 我必须点击多次才能在 rand 得到 1 时点击,否则我不会得到任何结果。可以从记录中 rand 得到一个 sql 答案吗?

【问题讨论】:

【参考方案1】:

您正在计算数据库之外的随机数,然后将其用作过滤器:但不能保证您有与随机值匹配的记录问题类型的另一个过滤器。

我建议在查询本身中进行随机排序。这应该像在查询末尾添加这样简单:

select ...
from ...
where typ_id = 1
order by rand() limit 1

请注意,确切的语法可能因数据库而异 - 以上是 mysql 语法。

【讨论】:

以上是关于如何从数据库中获取随机问题包括类别?的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个随机网站上抓取所有产品?

MYSQL 从每个类别中选择一个随机记录

如何在 Redshift 中做分层随机样本?

postgresql 对大型数据集进行分区并从一个类别中随机选择 3 个

如何使用 Forge API 从模型 Revit 2022 获取零件类别

Laravel 如何从“文章”表中获取没有类别的所有记录?