选择高库存的随机产品

威客

我正在尝试选择一种随机的产品颜色,但是我需要将随机性加权为高库存产品。因此,如果库存很高,我希望可以经常选择该产品。这是我正在使用的桌子:

CREATE TABLE `cases` (
  `id` int(11) NOT NULL,
  `status` int(11) NOT NULL,
  `color` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `stock` int(11) NOT NULL,
  `date_deleted` datetime DEFAULT NULL,
  `deleted_by` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `cases` (`id`, `status`, `color`, `stock`, `date_deleted`, `deleted_by`) VALUES
(2, 2, 'Black', 20, NULL, NULL),
(3, 2, 'Red', 100, NULL, NULL),
(4, 2, 'Blue', 100, NULL, NULL);

而且我正在使用此php脚本来测试分发。您还可以检查我正在使用的查询。我是从另一个SO问题得到的,但对我来说不合适。多数情况下,每次都会选择库存不足的情况。

$cases = [];
for ($i=0; $i < 1000; $i++) {
    $loadCases = mysqli_query($connect, "SELECT * FROM `cases` WHERE status = 2 AND stock > 0 ORDER BY (RAND()*stock) LIMIT 1");
    $case = mysqli_fetch_assoc($loadCases);

    if(isset($cases[$case['color']]))
        $cases[$case['color']]++;
    else
        $cases[$case['color']] = 1;
}
var_dump($cases);

典型结果如下所示

Array
(
    [Black] => 815
    [Red] => 99
    [Blue] => 86
)

我需要一个更好的查询。有任何想法吗?

威客

该查询是正确的,但默认情况下SQL会将结果按升序排列。因此,较低的值返回的频率更高。该查询解决了该问题。

SELECT * FROM `cases` WHERE status = 2 AND stock > 0 ORDER BY (RAND()*stock) DESC LIMIT 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在高库存控制中选择自定义日期范围

来自分类Dev

库存产品总和

来自分类Dev

查询产品库存

来自分类Dev

计算产品库存

来自分类Dev

高库存:地名标签

来自分类Dev

高库存范围覆盖

来自分类Dev

Jmeter从SQL Server数据库中选择随机产品

来自分类Dev

Woocommerce产品查询库存状态

来自分类Dev

woocommerce产品的低库存通知

来自分类Dev

库存产品类别

来自分类Dev

高库存图表范围选择器分钟和日期不起作用

来自分类Dev

高库存图表-更改范围选择器从和到输入的位置

来自分类Dev

在高库存范围选择器菜单中添加自定义下拉菜单

来自分类Dev

是否可以选择在多个系列的高库存商品中显示哪个系列

来自分类Dev

SuiteScript 库存选择

来自分类Dev

选择库存项目

来自分类Dev

高库存不起作用

来自分类Dev

高库存错误无效日期

来自分类Dev

高库存,使yAxis为零

来自分类Dev

高图(高库存)-数据不会显示

来自分类Dev

高库存/高图表时间戳值

来自分类Dev

高库存/高图表-yAxis标签顶部

来自分类Dev

WooCommerce产品变体:自动启用“管理库存”并设置库存数量

来自分类Dev

Shopify更新产品库存

来自分类Dev

计算2列对之间的差异(产品/库存)

来自分类Dev

我想从库存中扣除产品成分

来自分类Dev

如何仅获取woocoomerce产品库存

来自分类Dev

获取产品中组合的库存(PrestaShop)

来自分类Dev

Rails更新产品的库存值