gpt4 book ai didi

MYSQL更新随机选择X记录

转载 作者:行者123 更新时间:2023-11-30 00:20:30 25 4
gpt4 key购买 nike

我有一个学生表(称为学生),该表有一个名为 SchoolLevel 的 char 字段,指示他们所处的级别(H ->“高”,M ->“中”E ->“小学”)。我想将每个级别的学生随机分配到各自的学校,并使用名为“schoolID”的 int 字段。举例来说,如果我有 4530 名小学生

schoolID=1,应分配给 3000 名随机“E”学生

schoolID=2,应分配给另外 530 名随机“E”学生

并且 schoolID=3 应分配给剩余未分配的 1000 条记录(“E”学生)。

我尝试做这样的事情:

更新学生
设置学校 ID = 1where SchoolLevel=(从 SchoolLevel='E' 按 RAND() 限制 300 排序的学生中选择 SchoolLevel)

这显然不起作用 - 显然您不能将目标表指定为 FROM 子句中用于更新的同一个表。我什至可以做我想做的事情,即更新随机选择的 X 记录吗?

最佳答案

尝试这样(假设 SchoolID 最初 IS NULL)

UPDATE students
SET SchoolID = 1
WHERE SchoolLevel = 'E'
AND SchoolID IS NULL
ORDER BY RAND()
LIMIT 3000;

然后

UPDATE students
SET SchoolID = 2
WHERE SchoolLevel = 'E'
AND SchoolID IS NULL
ORDER BY RAND()
LIMIT 530;

等等

这里是SQLFiddle 示例

关于MYSQL更新随机选择X记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283533/

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