MySQL Update语句错误

时间:2010-11-02 07:35:08

标签: mysql sql sql-update mysql-error-1093

我有两个脚本,一个用于Insert,另一个用于Update。

我的更新按钮脚本正在使用最新插入的ID,并继续执行以下操作:

Update tblsurvey
set WouldLikeToBeSeenOnSite = 'sadffas'
and DislikedOnSite = 'asdfsadfsadf'
and OtherNewsWebsitesRead = 'asdfsadfa'
and LikedOnOtherNewsSites = 'asdfsadfas'
and IPAddress = '172.16.0.123'
and DateAnswered = current_date()
where SurveyResponseId in (select max(SurveyResponseId) from tblsurvey);

显然,“where”子句会产生错误:

1093 - you cant specify target table 'tblsurvey' for update in FROM clause. 

有没有其他方法可以使用我正在更新的同一个表的最新插入ID?

感谢。

2 个答案:

答案 0 :(得分:3)

等一下。为什么使用AND来分隔SET claus元素?它必须以逗号分隔。

答案 1 :(得分:1)

您不能对子查询FROM子句和更新目标使用相同表(在本例中为表tblsurvey)。

UPDATEDELETE操作使用相同的表进行更新/删除和子查询是非法的。