作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在数据库中使用 NOT IN/NOT EXISTS 执行 DELETE 或 UPDATE 查询时遇到问题。我有 2 个表 USERS
和 REMARK
。
提示:Users
表记录 = 9880 AND Remark
表记录 = 38943
我想删除 REMARK
表中 users
表中不存在 profile_id
的所有数据。
为了执行该操作,我使用了以下查询:
UPDATE remark
SET status = '0'
WHERE profile_id NOT IN (SELECT * FROM users);
Or
DELETE from remark
WHERE profile_id NOT EXISTS (SELECT * FROM users);
Or
DELETE FROM remark
WHERE NOT EXISTS (
select * from users
where users.profile_id = remark. profile_id);
结果 = #2013 - 查询期间失去与 MySQL 服务器的连接
请帮助我。
最佳答案
你很接近;
UPDATE remark SET status = '0' WHERE profile_id NOT IN
(SELECT * FROM users);
很可能是;
UPDATE remark SET status = '0' WHERE profile_id NOT IN
(SELECT profile_id FROM users);
由于*
会选择用户的所有字段,因此您无法将它们与profile_id
进行比较,您只需选择要比较的字段即可。
当然,您可以使用相同的 WHERE
子句进行删除;
DELETE FROM remark WHERE profile_id NOT IN
(SELECT profile_id FROM users);
关于MySQL : NOT EXISTS/NOT IN 的替代查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345640/
我是一名优秀的程序员,十分优秀!