SQLite3:如何使用SELECT+WHERE查询符合条件的随机行?
解决SQLite随机获取指定条件行的问题
嘿,这事儿好办!要实现每次执行都随机拿到ColName为"Mike"的一行,只需要修改你的SQL查询语句就行,SQLite自带的RANDOM()函数正好能派上用场。
修改后的完整代码
searchString = "SELECT * FROM Table1 WHERE ColName = 'Mike' ORDER BY RANDOM() LIMIT 1" result = cur.execute(searchString).fetchone()
原理说明
ORDER BY RANDOM():会把所有符合ColName = 'Mike'条件的记录随机打乱顺序LIMIT 1:只取打乱后的第一行,这样每次执行查询都会得到不同的随机结果(当然,如果只有一行符合条件的话,结果就固定啦)
小补充
如果你的Table1里符合条件的数据量特别大,这种排序所有行的方式可能会有点性能损耗,但对于大多数日常场景来说,这个方法简单直接,完全够用。
内容的提问来源于stack exchange,提问作者Rt Rtt
相关产品推荐
相关产品推荐

