1.应用情景把表game字段kg的值中iw字符串去掉。 2.错误写法update game set kg=replace(kg,'iw','') where kg in (select kg from game where kg like '%iw%'); 会报错:1093 - You can't specify target table。update语句中包含的子查询的表和update的表为同一张表时,会报错。 3.解决方法给查询加别名,用中间表来实现不是对同一表作操作。 4.正解update game set kg=replace(kg,'iw','') where kg in (select * from(select kg from game where kg like '%iw%') tempTable); 5.扩展将tail表中number为8的qty字段,修改成7,要通过临时表实现之。 UPDATE tail SET qty="7" WHERE id= (SELECT * from (SELECT id FROM tail WHERE number="8") tempTable) |