MySQL和PHP if/else

MySQL和PHP if/else,php,mysql,Php,Mysql,我很难理解MySQL中的if/else。我有一个简单的消息传递数据库,我想在其中删除消息行,但前提是两个用户都在其端删除了它 因此,数据库如下所示: ----|---------|-------------|------------ mid | message | user1delete | user2delete ----|---------|-------------|------------ 1 | hi! | no | yes ----|-------

我很难理解MySQL中的if/else。我有一个简单的消息传递数据库,我想在其中删除消息行,但前提是两个用户都在其端删除了它

因此,数据库如下所示:

----|---------|-------------|------------
mid | message | user1delete | user2delete
----|---------|-------------|------------
 1  |   hi!   |     no      |    yes
----|---------|-------------|------------
所以我想看看mid 1,如果其他用户已经删除了隐藏消息,则删除该行。否则,只需在正确的用户处更新yes。是否可以在一个MySQL查询中执行此操作,或者我必须在多个查询中使用PHP if/else语句

看起来像是谎言的东西:

SELECT * FROM MESSAGES
    IF user1delete = NULL or "no"
        THEN UPDATE user2delete = "yes"
    ELSE IF user1delete = "yes" AND user2delete = "yes"
        THEN DELETE where mid = 1
谢谢大家!!我希望我的问题是清楚的

编辑:我想更新是的

这就是你想要的吗


编辑:显然,仅为该消息将mid=1添加到WHERE语句中是不可能在单个查询中删除一行或更新同一行的。如果您非常希望在一次数据库调用中完成此操作,则可以编写存储过程。但是请记住,即使您使用PHP对SP进行一次数据库调用,您仍然在运行多个查询


最佳解决方案:从字面上删除数据永远都不是好事。为已删除的邮件创建另一列,如果两个用户都删除该列,则将其标记为已删除。这将允许您保留历史数据+您可以在一个Update语句中执行查询。

只需根据您需要的条件选择所需的所有行,即删除确认为“是”,我假设并删除它们。这是相当基本的SQL,不太清楚。其中一列是否为空?似乎您需要这样的内容:从user1delete='yes'和user2delete='yes'的表中删除,如果重复项无效,则向mid添加一个唯一键,这样您就可以在insert中得到错误,并在那里处理它。通过insert,他指的是更新user*DELETE列之一。。。插入-重复密钥更新不是一个选项EAH抱歉。。。我的意思是更新。我澄清了我的问题。。。希望…谢谢,我能做到。但这是“如果/否则”的部分欺骗了我。我可以用php实现,但我想知道在MySQL中是否可以只在一个查询中实现。谢谢。我喜欢删除专栏的想法。
DELETE FROM messages WHERE user1delete="yes" and user2delete="yes";