0

我想为另一个表中存在的所有值更新 MySQL 中列的值,但是当我尝试执行此操作时,出现以下错误。我怎样才能做到这一点?

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

有什么想法吗?

4

6 回答 6

2

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

(select * from url_list) 

查询应该只返回一行。

于 2013-01-14T17:17:49.237 回答
1

假设如果 url 存在于 url_list 的 url 列中,则将值设置为 0,请尝试

update table1 set value = "0" where url in (select url from url_list);
于 2013-01-14T17:17:17.487 回答
0

如果您将其更改=IN

update table1 set value = "0" where url IN (select * from url_list); 
于 2013-01-14T17:16:52.183 回答
0
update table1 set value = "0" where url IN (select * from url_list) 
于 2013-01-14T17:17:01.917 回答
0

更改查询的结尾:

WHERE url IN (select url from url_list) 
于 2013-01-14T17:17:14.490 回答
0
UPDATE table1 x
  JOIN url_list y
    ON y.url = x.url
   SET x.value = 0; 
于 2013-01-14T17:27:03.990 回答