MySQL重复操作表的每一行

时间:2013-01-14 17:13:26

标签: mysql sql database

我想更新MySQL中列的值以获取另一个表中的所有值,但是当我尝试这样做时,我收到以下错误。我怎样才能做到这一点?

 update table1 set value = "0" where url = (select * from url_list) ; 
 ERROR 1242 (21000): Subquery returns more than 1 row

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

您可以将“IN”用于“=”运算符或

(select * from url_list) 

查询应该只返回一行。

答案 1 :(得分:1)

如果网址存在于url_list的url列中,假设您希望将值设置为0,请尝试

update table1 set value = "0" where url in (select url from url_list);

答案 2 :(得分:0)

如果您将=更改为IN

,它应该有效
update table1 set value = "0" where url IN (select * from url_list); 

答案 3 :(得分:0)

update table1 set value = "0" where url IN (select * from url_list) 

答案 4 :(得分:0)

更改查询结尾:

WHERE url IN (select url from url_list) 

答案 5 :(得分:0)

UPDATE table1 x
  JOIN url_list y
    ON y.url = x.url
   SET x.value = 0;