Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_Sql - Fatal编程技术网

MySQL-选择然后删除,最好是在单个查询中

MySQL-选择然后删除,最好是在单个查询中,mysql,sql,Mysql,Sql,我们通常需要执行以下操作,检索用户的产品ID,然后从数据库中删除它们 select id from mytable where user=123; 然后我们删除上面查询返回的id: delete from mytable where id in (1, 5, 6, 7); 当select将数据从服务器返回到客户端时,可能会插入该用户的新记录,因此我们会有选择地删除ID 有没有更好的方法来实现它 谢谢 编辑:你们中的一些人已经回答了, 从mytable中删除,其中user=123 但这是一个错

我们通常需要执行以下操作,检索用户的产品ID,然后从数据库中删除它们

select id from mytable where user=123;
然后我们删除上面查询返回的id:

delete from mytable where id in (1, 5, 6, 7);
当select将数据从服务器返回到客户端时,可能会插入该用户的新记录,因此我们会有选择地删除ID

有没有更好的方法来实现它

谢谢

编辑:你们中的一些人已经回答了, 从mytable中删除,其中user=123


但这是一个错误的答案,因为可能会在完成查询的mysql服务器和尚未收到服务器响应的mysql客户端之间插入新行

如果应用程序无法完成其处理,该怎么办?您的方法似乎很合理。除了从mytable(其中用户=123)中删除
之外,您还能做什么呢?如果两个查询都与同一个表相关,为什么不能使用“从mytable(其中用户=123;)中删除”?插入该用户的
新记录是什么意思?