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) 

クエリは 1 行のみを返す必要があります。

于 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
UPDATE table1 x
  JOIN url_list y
    ON y.url = x.url
   SET x.value = 0; 
于 2013-01-14T17:27:03.990 に答える
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 に答える