【问题标题】:Mysql delete query using more than one condition in PHP在PHP中使用多个条件的Mysql删除查询
【发布时间】:2011-11-06 14:39:42
【问题描述】:

我想从表中删除数据(PHP + Mysql),具有三个条件。我尝试了“AND”和“,”,但都不起作用。

mysql_query("DELETE FROM `posts-meta` WHERE `post_id` = '$postid' AND `meta_name` = 'post_tag' AND `meta_value` = '$tag'")

有什么办法吗?

【问题讨论】:

  • 我在显示的代码中看不到任何错误。仔细检查表名和列名并打印包含变量值的结果字符串。然后检查表中是否有任何字段实际匹配条件。 (所有三个值必须完全匹配)
  • 我不知道你对什么感到抱歉。这解决了问题吗?
  • 是的,它解决了问题,谢谢

标签: php mysql delete-row


【解决方案1】:

如果您正在寻找一个会删除与您的所有三个条件匹配的结果的查询,那么您的查询是准确的:

DELETE FROM `posts-meta` WHERE `post_id` = '$postid' AND `meta_name` = 'post_tag' AND `meta_value` = '$tag'

如果您要删除与任一条件匹配的所有结果,则应使用 OR:

DELETE FROM `posts-meta` WHERE `post_id` = '$postid' OR `meta_name` = 'post_tag' OR `meta_value` = '$tag'")

希望我不会用这种常识重新陈述显而易见的事情来冒犯您,尽管您的问题确实缺少上下文,但我不知道您到底要完成什么,为什么它不起作用,。 ..

【讨论】:

    【解决方案2】:

    不要以这种丑陋的方式运行查询,而是将所有代码都放在一行中,始终使其合理,并始终添加一些错误检查

    如果您有至少以这种方式运行查询的习惯

    $sql = "DELETE FROM `posts-meta` WHERE `post_id` = '$postid' 
            AND `meta_name` = 'post_tag' AND `meta_value` = '$tag'";
    mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
    

    您已收到错误通知,并没有浪费您和其他人的时间。

    【讨论】:

      猜你喜欢
      • 2013-01-31
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      • 2022-01-24
      • 2011-10-09
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多