gpt4 book ai didi

mySQL随机选择概率

转载 作者:可可西里 更新时间:2023-11-01 06:46:13 24 4
gpt4 key购买 nike

假设我有一个带有整数字段的数据库表 - 将其称为“flavour”,并且该字段的值只能是数字 1 到 10。

有没有办法从数据库中选择一个随机行,有 20% 的几率是第六味,30% 的几率是第二味,50% 的几率是第一味?


抱歉回复晚了 - 非常感谢您的帮助。 Eugen 的回答似乎最能满足我的需要;我知道 ORDER BY rand() 的危险,但我正在编写的应用程序不会在大型数据源上运行,或者必须支持许多并发用户。所以我会接受它并接受性能损失。

最佳答案

SELECT
IF(@rnd<0.5,1,IF(@rnd<0.8,2,6)) AS rndflavour
FROM
(SELECT @rnd:=rand()) AS rndinit;

为您提供所需概率的 flavor 。

SELECT * FROM tablename ORDER BY rand() LIMIT 1

给你一个随机行。现在我们把它放在一起:

SELECT
tablename.*
FROM
tablename
INNER JOIN (
SELECT
IF(@rnd<0.5,1,IF(@rnd<0.8,2,6)) AS rndflavour
FROM
(SELECT @rnd:=rand()) AS rndinit
) AS rndview ON rndview.rndflavour=tablename.flavour
ORDER BY rand()
LIMIT 1

关于mySQL随机选择概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792426/

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