gpt4 book ai didi

php - Mysql 基于百分比的查询

转载 作者:可可西里 更新时间:2023-11-01 08:37:40 32 4
gpt4 key购买 nike

这种mysql查询可以吗?

  SELECT power 
FROM ".$table."
WHERE category IN ('convertible')
AND type = bwm40%
AND type = audi60%
ORDER BY RAND()

会是这样的:从所有汽车中,选择可转换功率的汽车,但 40% 的选择是宝马,其他 60% 是奥迪。

这可以用mysql来完成吗?

似乎无法让它与下面的 ideea 一起工作,给我一个错误,这是我的尝试方式:

    $result = mysql_query("
SELECT power, torque FROM ".$table."
WHERE category IN ('convertible')
ORDER BY (case type when 'bmw' then 0.4 when 'audi' then 0.6) * RAND() DESC
LIMIT ".$offset.", ".$rowsperpage."");

最佳答案

您可以尝试使用 CASE 调整随机性:

SELECT power
FROM table
WHERE category IN ('convertible')
AND type IN ('bwm', 'audi')
ORDER BY (case type when 'bwm' then Wbwm when 'audi' then Waudi) * RAND() DESC

其中WbmwWaudi是权重因子。然后您将添加一个 LIMIT 子句以按照您想要的大小截断结果。这不能保证您想要的比例,但可能足以满足您的目的。

您需要稍微调整一下权重因子(上面的 WbmwWaudi)以获得您想要的结果。权重因子将取决于数据库中 bwmaudi 的频率,因此 0.2 和 0.8 可能效果更好。正如 Chris 在评论中指出的那样,0.4 和 0.6 只有在 BMW 和 Audi 之间有 50/50 的比例时才有效。将权重放在单独的表中会使这种方法更易于维护,并且 SQL 会更漂亮。

关于php - Mysql 基于百分比的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566067/

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