mysql中You can’t specify target table for update in FROM clause错误解决方法
mysql中Youcan'tspecifytargettableforupdateinFROMclause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。例如下面这个sql:
deletefromtblwhereidin
(
selectmax(id)fromtblawhereEXISTS
(
select1fromtblbwherea.tac=b.tacgroupbytacHAVINGcount(1)>1
)
groupbytac
)
改写成下面就行了:
deletefromtblwhereidin
(
selecta.idfrom
(
selectmax(id)idfromtblawhereEXISTS
(
select1fromtblbwherea.tac=b.tacgroupbytacHAVINGcount(1)>1
)
groupbytac
)a
)
也就是说将select出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语