我已经找了几个小时了,我不知道该怎么做。下一个是问题。我有两张桌子,顾客和订单。Customers有id和5-6列,它们是空的,必须用随机数据填充。为此,让我们将orders_accepted_campaigns作为希望填充数据的列。在orders表中,我们有customer_ids和order值。那么,我应该如何编写一个查询,在每个orders_accepted_campaigns字段中填充比每个客户已经下的订单数(count(customer_id) from orders group by customer_id)低的随机数,这样您就不能有4个订单和5个orders_accepted_campaigns
发布于 2017-06-13 00:47:06
听起来你想要一个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);注意:当客户有零订单时,这会将值设置为0。
发布于 2017-06-12 23:45:54
如果要在0和k-1包含之间均匀分布的随机整数,请使用此表达式。
TRUNCATE(RAND() * k , 0)避免使用CAST;它循环而不是截断,这会破坏统一的分布。
https://stackoverflow.com/questions/44509641
复制相似问题