我已阅读其他帖子,我真的不明白我在这里做错了什么,因为这是一个如此简单的陈述。
'()'中的任何内容都是评论
查询:
[UPDATE users, sites
SET users.idSiteRegUsers='1'
WHERE sites.SiteActivateSites='DEL' ]
(TBL选择在整个查询中更新) (将用户tbl idSiteRegUsers设置为1) (只有tbl站点中的站点= DEL)
我还阅读http://bugs.mysql.com/bug.php?id=52651并尝试将INT更改为VARCHAR并将UPDATING 0更改为DEL,因为该错误但结果仍然相同。
问题:
我有2129条记录需要使用简单的select语句进行更新,以了解结果的数量。
([SELECT
sites.SiteActivateSites,
sites.id_Sites,
users.idSiteRegUsers,
users.CompanyNameUsers,
sites.LinkNameSites
FROM
users
INNER JOIN sites ON users.idSiteRegUsers = sites.id_Sites
WHERE
sites.SiteActivateSites != '1']) 'simple'
但是UPDATE查询更新所有4000多条记录,而不仅仅是= DEL的记录,而是那些引用另一个值的记录,例如: = 1.
我错过了什么吗?
干杯, 乔
答案 0 :(得分:1)
与您的SELECT
命令一样,您需要告诉MySQL如何连接表:您的UPDATE
当前正在执行两个表的完整笛卡尔积({{1}中的每一行已加入users
中的每一行 - 因此sites
上的WHERE
条件过滤仍然会导致来自sites
的每条记录都匹配。
尝试改为:
users