我想更新同一个表的一些行。
我知道下面的表单在MySQL下不起作用

 UPDATE footbl SET foocol=something WHERE foocol in (SELECT ft.foocol ... bla bla )

MySQL论坛的一篇文章建议:使用子查询。
所以我的解决方案是:
 SELECT @data:=f2.fname ... bla bla
 UPDATE tfile2 SET fstatus='deleted' WHERE tfile2.fname=(@data);

但是,不幸的是,如果子查询@data包含多行,那么在我的例子中,只有一行被更新。!check this pic!
那么,我错了什么,怎么能更新同一个表上的多行呢?
谢谢你的努力和提前的时间。
乔鲍

最佳答案

您可以使用同一个表使用双嵌套。在这种情况下,mysql无法得到您正在更新同一个表:

UPDATE footbl
   SET foocol=something
 WHERE foocol in (SELECT foocool FROM (SELECT ft.foocol FROM footbl ...) x )

10-08 11:27