Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL更新随机选择的X记录_Mysql_Random_Sql Update - Fatal编程技术网

MYSQL更新随机选择的X记录

MYSQL更新随机选择的X记录,mysql,random,sql-update,Mysql,Random,Sql Update,我有一个名为students的学生表,这个表有一个名为SchoolLevel的字符字段,指示他们在H->high,M->middle E->elementary中的级别。我想随机将每个级别的学生分配到各自的学校,并使用名为“schoolID”的int字段。例如,如果我有4530名小学生 schoolID=1,应随机分配给3000名“E”学生 schoolID=2,应分配给另外530名随机“E”学生 和schoolID=3应分配给剩余的1000名未分配记录的“E”学生 我试着这样做: 更新学生 设

我有一个名为students的学生表,这个表有一个名为SchoolLevel的字符字段,指示他们在H->high,M->middle E->elementary中的级别。我想随机将每个级别的学生分配到各自的学校,并使用名为“schoolID”的int字段。例如,如果我有4530名小学生

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

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

和schoolID=3应分配给剩余的1000名未分配记录的“E”学生

我试着这样做:

更新学生 设置SchoolID=1 where schoolevel=从schoolevel='E'按兰德限制300排序的学生中选择schoolevel


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

假设SchoolID最初为空,可以这样做

更新学生 设置SchoolID=1 其中学校级别='E' 并且SchoolID为空 兰特订购 限额3000; 然后

更新学生 设置SchoolID=2 其中学校级别='E' 并且SchoolID为空 兰特订购 限额530; 等等

下面是一个例子