【问题标题】:Python Sqlite: How would you randomly select a value-specific row?Python Sqlite:您如何随机选择特定于值的行?
【发布时间】:2018-01-19 10:26:08
【问题描述】:

我希望能够随机选择具有特定值的行。例如,我在 sqlite 中有一个存储不同特征(即性别)的学生表。我想随机选择一个使用 python 的男性学生。我查看了其他问题(例如Select a random row from the table using Python),但与值特定行无关。我该怎么做?

【问题讨论】:

  • 如果你不关心性能,你可以在 SQL SELECT * FROM students WHERE gender = 'male' ORDER BY RAND() LIMIT 1 中完成所有操作(不确定 SQLite 是否有 ORDER BY RAND(),但我相信它有)
  • 我的学校项目要求我使用 Python 来操作数据库。
  • 很好。 conn = sqlite3.connect(); conn.query('SELECT * FROM students WHERE gender = 'male' ORDER BY RAND() LIMIT 1')。但是你真的应该在问之前自己尝试一下。问别人怎么做你不会学到任何东西。

标签: python sqlite


【解决方案1】:

不需要 python 特定的语法:sqlite 有一个random() 函数:

select
  *
from users

where gender == 'M'

order by random()

limit 1

有关性能,请参阅:https://stackoverflow.com/a/24591688/788700

【讨论】:

    猜你喜欢
    • 2012-08-29
    • 2011-05-06
    • 2023-04-03
    • 1970-01-01
    • 2018-03-26
    • 2017-11-24
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多