Mysql在PHP中使用多个条件删除查询

时间:2011-11-06 14:39:43

标签: php mysql delete-row

我想删除表中的数据(PHP + Mysql),有三个条件。我尝试了'AND'和','但是不起作用。

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

有什么办法吗?

2 个答案:

答案 0 :(得分: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'")

希望我不会因为用这些常识重新陈述显而易见而冒犯你,虽然你的问题确实缺少了背景,但我不知道你究竟想要完成什么,为什么它不起作用,。 ..

答案 1 :(得分:0)

而不是这种运行查询的丑陋方式,只需将所有代码填入一行,总是让它变得合理,并且总是添加一些错误检查

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

$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);

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