MySQL更新,设置在哪里不工作?
我读过其他帖子,我真的不明白我做错了什么,因为这是一个如此简单的声明 “()”中的任何内容都是注释 查询:MySQL更新,设置在哪里不工作?,mysql,set,where,Mysql,Set,Where,我读过其他帖子,我真的不明白我做错了什么,因为这是一个如此简单的声明 “()”中的任何内容都是注释 查询: [UPDATE users, sites SET users.idSiteRegUsers='1' WHERE sites.SiteActivateSites='DEL' ] (待选择以在整个查询中更新) (将用户tbl idSiteRegUsers设置为1) (其中只有tbl sites=DEL中的站点) 我也读过并尝试过将INT改为VARCHAR,并将0更新为DEL,但结果仍然相同
[UPDATE users, sites
SET users.idSiteRegUsers='1'
WHERE sites.SiteActivateSites='DEL' ]
(待选择以在整个查询中更新)
(将用户tbl idSiteRegUsers设置为1)
(其中只有tbl sites=DEL中的站点)
我也读过并尝试过将INT改为VARCHAR,并将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'
但是更新查询会更新所有4000多条记录,不仅更新=DEL的记录,还更新引用另一个值(例如=1)的记录
我错过什么了吗
干杯,
Joe正如使用
SELECT
命令一样,您需要告诉MySQL这些表是如何连接的:您的UPDATE
目前正在对这两个表进行完全笛卡尔积(由于用户
中的每一行都与站点
中的每一行相连接,因此站点
上的WHERE
条件过滤仍然会导致用户
中的每一条记录都匹配)
请尝试:
UPDATE users JOIN sites ON users.idSiteRegUsers = sites.id_Sites
SET users.idSiteRegUsers='1'
WHERE sites.SiteActivateSites='DEL'
哈哈,愚蠢的我!非常感谢你指出这一点。你是一个超级明星eggyal!