0

(おそらく) 単純な更新は、それほど単純ではないことが判明しました。他の回答済みの質問からどの構文を試しても、MySQL から同じ応答が返されます。

影響を受けた 0 行 一致した行: 124 変更された: 0 警告: 0

1を試してください:

UPDATE news_content, news_map
SET news_content.active='no'
WHERE news_content.rowID = news_map.newsID
AND news_map.catID = 170;

2 を試してください:

UPDATE  news_content
LEFT JOIN
    news_map
ON      news_map.newsID = news_content.rowID
SET     news_content.active = 'no'
WHERE   news_map.catID = 170;

3 を試してください:

UPDATE 
news_content nc JOIN
news_map nm 
  ON nm.newsID = nc.rowID 
  AND nm.catID = 170
SET nc.active = 'no';

何がうまくいくと思いますか?

4

3 に答える 3

1

ばかげた質問かもしれませんが、news_content.active はすでに「いいえ」になっていますか?

于 2013-02-20T13:43:34.107 に答える
0

これによって返される行はありますか:

select *
from news_content
LEFT JOIN
    news_map
ON      news_map.newsID = news_content.rowID
WHERE   news_map.catID = 170
于 2013-02-20T13:39:08.350 に答える
0

これを試して:

UPDATE news_content
SET active='no'
WHERE rowID IN (SELECT m.newsID FROM news_map m WHERE m.catID = 170);

一般に、UPDATE では JOIN の代わりにサブクエリを使用する方がより標準的な方法であるため、サブクエリを使用することを好みます。

于 2013-02-20T15:29:09.053 に答える