別のテーブルに存在するすべての値について、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)
クエリは 1 行のみを返す必要があります。
URLがurl_listのurl列に存在する場合、値を0に設定すると仮定して、試してください
update table1 set value = "0" where url in (select url from url_list);
UPDATE table1 x
JOIN url_list y
ON y.url = x.url
SET x.value = 0;
を次のように変更すると機能するはず=
です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)