我想为另一个表中存在的所有值更新 MySQL 中列的值,但是当我尝试执行此操作时,出现以下错误。我怎样才能做到这一点?
update table1 set value = "0" where url = (select * from url_list) ;
ERROR 1242 (21000): Subquery returns more than 1 row
有什么想法吗?
您可以将“IN”用于“=”运算符或
(select * from url_list)
查询应该只返回一行。
假设如果 url 存在于 url_list 的 url 列中,则将值设置为 0,请尝试
update table1 set value = "0" where url in (select url from url_list);
如果您将其更改=
为IN
:
update table1 set value = "0" where url IN (select * from url_list);
update table1 set value = "0" where url IN (select * from url_list)
更改查询的结尾:
WHERE url IN (select url from url_list)
UPDATE table1 x
JOIN url_list y
ON y.url = x.url
SET x.value = 0;