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 送给学长毕业祝福语简短