Php MySQL:根据同一表的一条记录中一个选定字段的值删除表中的多行

Php MySQL:根据同一表的一条记录中一个选定字段的值删除表中的多行,php,mysql,Php,Mysql,我有一张表,如下所示: +---+----------+----------+---------+---------+ +ID + FIELD 1 + FIELD 2 + FIELD 3 + FIELD 4 + +---+----------+----------+---------+---------+ + 1 + AAA + 1234 + ABC + Y + + 2 + AAA + 1234 + DEF +

我有一张表,如下所示:

+---+----------+----------+---------+---------+
+ID + FIELD 1  + FIELD 2  + FIELD 3 + FIELD 4 +
+---+----------+----------+---------+---------+
+ 1 +  AAA     +  1234    +  ABC    +   Y     +
+ 2 +  AAA     +  1234    +  DEF    +         +
+ 3 +  AAA     +  1234    +  GHI    +         +
+ 4 +  BBB     +  1234    +  ABC    +         +
+ 5 +  CCC     +  1234    +  JKL    +         +
+---+----------+----------+---------+---------+
我有一个正在运行的进程,可以将FIELD4设置为Y,然后还有一个进程检查FIELD4中的“Y”值

我需要编写一个或多个查询,可能会删除FIELD4='Y'的记录,但也会删除所有其他记录,其中FIELD1的值与最初删除的记录的值相同

作为记录,FIELD4最终将成为一个复选框,所需的MySQL将从PHP脚本中调用。考虑到这一点,如果解决方案涉及PHP,这将不是一个问题


我已经在PHP和MySQL网站和论坛上进行了很好的搜索,但是找不到一对多的删除。有什么想法吗?

我想你需要一个Delete-Select语句。它基本上是delete查询中的select语句。例如:

DELETE FROM `tablename` WHERE FIELD1 IN ( SELECT FIELD1 FROM `tablename` WHERE FIELD4 = `Y` )   );

我想你需要一个Delete-Select语句。它基本上是delete查询中的select语句。例如:

DELETE FROM `tablename` WHERE FIELD1 IN ( SELECT FIELD1 FROM `tablename` WHERE FIELD4 = `Y` )   );

尝试以下查询:

从表中删除 字段1在哪里 选择a.FIELD1 从表a中选择* a.FIELD4='Y' ;
尝试以下查询:

从表中删除 字段1在哪里 选择a.FIELD1 从表a中选择* a.FIELD4='Y' ;
那里的技能LolCoder,你把它钉死了!我一定试过这么多变化,但没有想到这一个。我真的很感激!!!那里的技能LolCoder,你把它钉死了!我一定试过这么多变化,但没有想到这一个。我真的很感激!!!