在MySQL中,寫SQL語句的時候 ,可能會遇到You can't specify target table '表名' for update in FROM clause這樣的錯誤,它的意思是說,不能先select出同一表中的某些值,再update這個表(在同一語句中),即不能依據某字段值做判斷再來更新某字段的值
問題解決
將SELECT出的結果再通過中間表SELECT一遍,這樣就規避了錯誤。
例:
DELETE FROM l_p_agent_user WHERE id NOT IN (SELECT a.id FROM (SELECT id FROM l_p_agent_user WHERE ag_sj='260' OR id='260') a)