一个(据说)简单的更新已经证明并非如此简单。无论我从其他已回答的问题尝试哪种语法,我都会从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';
您认为有什么用?
答案 0 :(得分:1)
可能是一个愚蠢的问题,但news_content.active已经等于'不'?
答案 1 :(得分:0)
这是否有任何行返回:
select *
from news_content
LEFT JOIN
news_map
ON news_map.newsID = news_content.rowID
WHERE news_map.catID = 170
答案 2 :(得分:0)
试试这个:
UPDATE news_content
SET active='no'
WHERE rowID IN (SELECT m.newsID FROM news_map m WHERE m.catID = 170);
我更喜欢在UPDATE上使用子查询而不是JOIN,因为它是一种更标准的方式。