Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL替代查询:不存在/不在_Mysql_Mysqldump - Fatal编程技术网

MySQL替代查询:不存在/不在

MySQL替代查询:不存在/不在,mysql,mysqldump,Mysql,Mysqldump,我在使用数据库中的NOT IN/NOT EXISTS执行删除或更新查询时遇到问题。我有2个表用户和备注 提示:用户表记录=9880,备注表记录=38943 我想从备注表中删除用户表中不存在profile_id的所有数据 要执行我使用此查询的操作,请执行以下操作: UPDATE remark SET status = '0' WHERE profile_id NOT IN (SELECT * FROM users); Or DELETE from remark WHERE profile_

我在使用数据库中的NOT IN/NOT EXISTS执行删除或更新查询时遇到问题。我有2个表用户和备注

提示:用户表记录=9880,备注表记录=38943

我想从备注表中删除用户表中不存在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 r
WHERE NOT EXISTS (
    SELECT *
    FROM USERS
    WHERE profile_id=r.profile_id
)

由于引用。信用证:如果你认为是正确的,请考虑接受这个答案。否则,最好给答案的作者一个反馈,让他改进答案,从而帮助你!
DELETE FROM REMARK
WHERE NOT EXISTS (
    SELECT *
    FROM USERS
    WHERE profile_id=REMARK.profile_id
)
DELETE FROM REMARK r
WHERE NOT EXISTS (
    SELECT *
    FROM USERS
    WHERE profile_id=r.profile_id
)