今天执行一个mysql语句的时候,出现错误提示:You can't specify target table for update in FROM clause
mysql 语句如下;
UPDATE school_more_info SET comments = replace( comments, \'�\', \"\'\" ) WHERE school_id IN (SELECT school_id FROM school_more_info WHERE comments LIKE \'%�%\')
这个sql的意思是将comments字段中的�替换更新成‘, 更新的条件是只有含有�的行才更新,没有�的行则不更新。咋一看,应该没有错啊,我们经常这么写。最后查资料,mysql中不能这么用,那串英文错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。
改写后的sql,这样是可以正确执行的。如下:
UPDATE school_more_info SET comments = replace( comments, \'�\', \"\'\" ) WHERE school_id IN (SELECT school_id FROM (SELECT *FROM school_more_info WHERE comments LIKE \'%�%\') AS a) 继续阅读与本文标签相同的文章
上一篇 :
checkbox全选以及反选/取消全选
下一篇 :
mysql replace函数用法实例
-
超进化,时尚玩主的全新一代名爵ZS,起步只要7.98万
2026-05-14栏目: 教程
-
微信 7.0.8 内测新功能,教你如何激活它
2026-05-14栏目: 教程
-
美女机器人刚上市就售罄,除了生孩子,其他什么都能干!
2026-05-14栏目: 教程
-
互联网之光大会的黑科技,总有一款惊艳你!
2026-05-14栏目: 教程
-
微信宣布一项新举措,关系到每一个用户,网友一致力挺:干得漂亮!
2026-05-14栏目: 教程
