gpt4 book ai didi

mysql - 在 mySql 查询中获取随机值

转载 作者:行者123 更新时间:2023-11-29 03:59:01 26 4
gpt4 key购买 nike

我有一个查询,它在数据库中选择 6 个名字。例如

SELECT names FROM users LIMIT 6

现在我想让这个查询在数据库表中随机选择 6 个名字,这可能吗?以及如何

最佳答案

简单但缓慢的解决方案是:

SELECT names FROM users ORDER BY RAND() LIMIT 6

这使用随机数排序并具有 O(n log n) 性能。对于 10000 行,它应该运行良好,但对于更大的表,它不会很好地扩展。

为了更快地获得它,您可以查看 Quassnoi的文章MySQL: selecting a number of random rows fast .

SELECT  *
FROM (
SELECT @cnt := COUNT(*) + 1,
@lim := 6
FROM users
) vars
STRAIGHT_JOIN
(
SELECT names,
@lim := @lim - 1
FROM users r
WHERE (@cnt := @cnt - 1)
AND RAND() < @lim / @cnt
) i

这具有 O(n) 性能。

关于mysql - 在 mySql 查询中获取随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2776090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com