我一直在寻找几个小时,我不知道该怎么做。接下来是问题所在。我有两张桌子,顾客和订单。 客户有id和5-6列为空,必须填充随机数据。为此,我们将orders_accepted_campaigns
作为我们要填充数据的列。在订单表中,我们有customer_ids和订单值。那么我应该如何编写一个查询来填充每个orders_accepted_campaigns
字段,其随机数低于每个客户订单的数量(count(customer_id) from orders group by customer_id
),这样您就不能拥有4个订单和5 orders_accepted_campaigns
?
答案 0 :(得分:2)
如果你想要一个介于0和k
- 1之间的均匀分布的随机整数,请使用这个表达式。
TRUNCATE(RAND() * k , 0)
避免CAST
;它是圆形而不是截断,这会扰乱均匀分布。
答案 1 :(得分:0)
听起来你想要一个wrapper.instance()
:
update
注意:当客户零订单时,这会将值设置为update customers c left join
(select customer_id, count(*) as cnt
from orders o
group by customer_id
) o
on o.customer_id = c.customer_id
set orders_accepted_campaigns = floor(rand() * cnt);
。