使用Python从表中选择一个随机行

时间:2017-05-24 05:06:14

标签: python database random

下面是我的表。我使用MySQL进行数据库查询。

表格的结构

enter image description here

我想通过从表中提问来随机打印问题。我怎么能用Python做到这一点?

3 个答案:

答案 0 :(得分:1)

from random import randint
num = randint(1,5)

然后db query:

SELECT question FROM your_table WHERE ques_id = num;

可替换地:

SELECT question FROM your_table LIMIT num-1, 1;

num将是1到5之间的随机数,在查询中替换num,它只返回1行。请注意,它从索引0开始,因此第一个参数应该是num-1而不是num,第二个参数始终为1,因为您只想为每个查询获取一行。

答案 1 :(得分:1)

如果所有ID都按顺序排列,请获取最大值并使用随机库从数据库中获取1到最大id的随机数。

from random import randint

random_id = randint(1,my_max_id)

然后使用random_id从数据库中获取该项目。

如果你还没有设置你的python mysql连接,你可以参考这个 How do I connect to a MySQL Database in Python?

答案 2 :(得分:0)

您可以在数据库级别(在MySQL中)执行此操作,从而可以提高速度(通过在较低级别的软件中进行计算)。

在MySQL中,您可以随机获得所有要显示的问题。

SELECT qus_id, question FROM your_table ORDER BY RAND();

然后,在python中,通过顺序获取MySQL中以前乱序的记录来显示它们。

for question in rows:
    show_question(question)

任何“随机”操作的处理成本都很高,因此计算该软件的软件级别越低,您的程序就会越优化。