Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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
Php 从表中删除行的多个查询_Php_Mysql - Fatal编程技术网

Php 从表中删除行的多个查询

Php 从表中删除行的多个查询,php,mysql,Php,Mysql,我如何运行一个代码,它在table1中检查postid列,然后搜索table2以查看该值是否实际存在。如果确实存在,则转到下一行,如果不存在,则从表1中删除该行 因此,如果在table 1中,我有一行有3行:一行是postid,共333行,另一行是444行,另一行是555行 假设333在table2中不存在,那么我需要从table1中删除包含该postid的行,并移动到下一行。它会一直这样做,直到所有行都被选中 我将如何做到这一点?我感到非常困惑,无法思考所有问题。如果要迭代帖子ID,可以对每个

我如何运行一个代码,它在
table1
中检查
postid
列,然后搜索
table2
以查看该值是否实际存在。如果确实存在,则转到下一行,如果不存在,则从
表1
中删除该行

因此,如果在
table 1
中,我有一行有3行:一行是
postid
,共
333行,另一行是
444行,另一行是
555行

假设
333
table2
中不存在,那么我需要从
table1
中删除包含该
postid
的行,并移动到下一行。它会一直这样做,直到所有行都被选中


我将如何做到这一点?我感到非常困惑,无法思考所有问题。

如果要迭代帖子ID,可以对每个帖子ID执行这种类型的删除:

DELETE FROM table1 WHERE postid = 333 AND 333 NOT IN (SELECT postid FROM table2 WHERE postid = 333);
或者,从表1中删除表2中没有匹配postid记录的所有行(假设table2.postid列定义为NOTNULL):


如果我是手动操作,我会首先从表1中选择*。然后选择第一行并复制它的postid值-让我们将其设为2。然后我会:从表2中选择*,其中postd='2'。然后,如果它没有显示结果,我会:从表1中删除postid='2',但如果它显示结果,我会做同样的事情,但对下一个postid。我希望自动执行此操作,这样我就不会进行多次查询,也不会在上面花费数小时。@user3474238正如您在不包含代码的帖子中所解释的,此代码应该可以工作。如果你对这个用法感到困惑,你需要努力更好地解释问题中的目标,提供真实的代码。超级!真是太棒了!我现在也有点明白了。谢谢你的帮助(不同于某些人:)你试图为这个问题编写解决方案的尝试在哪里?我以为人们可以阅读:)我很困惑,无法思考所有问题。“我以为人们可以阅读…”是的,人们可以阅读。但是如果没有代码,你基本上是要求人们为你做规范工作。在这里发帖时,你需要表现出最小的努力。发布一篇关于行为的叙述不是一种努力。或者,如果人们不知道如何做某事,也许他们可以为他们指明正确的方向。非常有帮助:/
DELETE table1 FROM table1 LEFT JOIN table2 ON (table2.postid = table1.postid) WHERE table2.postid IS NULL;