<update id="assignPlural" >
update exam_task set teacherId=#{teacherId} where id in (
select id from (
select id , row_number() over (partition by answerId order by null) m from
( select id , answerId from exam_task where answerId in
(select id from exam_answer where questionId =#{questionId})
and
answerId not in
(select answerId from exam_task where teacherId=#{teacherId})
)
) where m=1
) where rownum <=#{assignNum}
</update>
update exam_task set teacherId=#{teacherId} where id in (
) where rownum <=#{assignNum}
这是你的第一句和最后一句,两个where
具体看一下你语句的结构,调整一下,或者把后面的where去掉
where rownum < ; =#{assignNum} 有个分号,结束了,后面还有sql语句