获取随机条目的 SQL 查询
Posted
技术标签:
【中文标题】获取随机条目的 SQL 查询【英文标题】:SQL query to get random entries 【发布时间】:2012-11-22 06:16:22 【问题描述】:假设我有一张桌子 T。
并且 T 包含 X 个元组。 (并且表 T 有一个数字 PRIMARY KEY)
SQL 中有没有办法获取这些元组的随机子集(n)。
也就是说,每次我运行查询时都会输出一组不同的元组。
(注意:我知道这可以通过编程语言完成,但这意味着对我的数据库运行 N 个查询)。
我能想到的唯一解决方案是
1.在一个数组中生成n个唯一的随机数(arr)
2.将循环中的数字添加为
"SELECT * FROM T where id="+arr[0] + "OR id=" +arr[1].....+"OR id="+arr[n]
我正在使用 phpMYADMIN 数据库
但这对我来说似乎并不优雅。有什么想法?
谢谢
【问题讨论】:
【参考方案1】:SELECT * FROM T ORDER BY RAND() LIMIT 5
【讨论】:
不错。我什至从来没有听说过这个。我想我得再读点书了 有没有办法提取一组特定的条目。不用我上面的方法,我可以选择一组 5 个具有指定 ID 的条目SELECT * FROM T WHERE ID IN (1, 2, 5, 456, 234, 123)
以上是关于获取随机条目的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章