我有以下疑问:
update tblwerknemerdienst toUpdate
set datumtot = (select subdate(datumvanaf,1)
from (select * from tblwerknemerdienst) nextDienst
where nextDienst.Werknemer = toUpdate.Werknemer
and nextDienst.datumvanaf > toUpdate.DatumVanaf
order by DatumVanaf
LIMIT 1)
WHERE DatumTot IS NULL;该查询在MySql 5.7.10以外的MySql版本上运行良好。我在网上搜索过,发现你必须设置derived_merge=off,但遗憾的是,这没有什么效果,查询仍然失败,并返回相同的错误。我还尝试了几种重写查询的不同方法,但都无济于事。我是不是遗漏了什么,或者有没有其他方法来完成这件事?
发布于 2017-08-11 17:34:27
最后,我通过在一个过程中重写整个过程来修复这个问题,在这个过程中,我使用游标来执行查询并获取必要的数据。然后,我根据光标中选择的字段执行update语句。
这似乎是在不同版本的MySql上可靠地执行所需操作的唯一方法。
https://stackoverflow.com/questions/45613041
复制相似问题