【发布时间】:2021-01-08 01:10:48
【问题描述】:
create table queue(queue_id int primary key auto_increment, tele bigint);
insert into queue values
(null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
, (null, null)
create table container (container_id int primary key auto_increment, queue_container_id int, source bigint);
insert into container values
(null, 1, 1000000001)
, (null, 1, 1000000002)
, (null, 1, 1000000003)
, (null, 1, 1000000004)
, (null, 1, 1000000005)
, (null, 2, 1000000003)
我的目标: 我想用适当的源 # 更新 Tele 列。
我想将源 #s 均匀地分配到队列中。一种约束,它必须只使用给定的 queue_container_id。例如,如果我将 queue_container_id 设为 1,它只会使用这些源编号。队列应填满所有电话号码。重复应首先尝试均匀分布。
最困难的方法是获取所有 queue_id 并一次更新每一行。我想知道这是否可以通过一个查询来实现,因为一次更新可能多达 100 万行。
【问题讨论】:
-
能否提供一个案例场景?
-
使用 queue_container_id 0 的示例,将是一个完全填充的队列表,并按此顺序包含以下“tele”列:1000000001、1000000002、1000000003、1000000004、1000000005、1000000001、1000 1000000004, 1000000005.
标签: mysql sql count subquery window-functions