如何从数据库中获取随机问题包括类别?
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 语法。
【讨论】:
以上是关于如何从数据库中获取随机问题包括类别?的主要内容,如果未能解决你的问题,请参考以下文章
postgresql 对大型数据集进行分区并从一个类别中随机选择 3 个