mysql使用中遇到的一些问题
一,You can’t specify target table ‘表名’ for update in FROM clause错误
-
错误写法:
UPDATE user_info SET STATUS = '1' WHERE USER_ID IN (SELECT USER_ID FROM user_info WHERE NAME != '');
-
原因:在MYSQL里,不能先select一个表的记录,在按此条件进行更新和删除同一个表的记录,需要将select得到的结果,再通过中间表select一遍,才能对中间表进行更新和删除
-
正确写法:
UPDATE user_info SET STATUS = '1' WHERE USER_ID IN (SELECT USER_ID FROM (SELECT USER_ID FROM user_info WHERE NAME != '') t1);