我想更新同一个表的一些行。
我知道下面的表单在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 )