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

问题描述:

我想用三个条件删除表(PHP + Mysql)中的数据。我尝试了'和'和','但都不行。在PHP中使用多个条件的Mysql删除查询

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

有什么办法吗?

+0

我在所示的代码中看不到任何错误。仔细检查表名和列名,并打印包含变量值的结果字符串。然后检查表中的任何字段是否与条件匹配。 (所有三个值必须完全匹配) – Frank

+0

@frank对不起我的错误,我每次都使用posts-meta而不是posts_meta,再次抱歉。但感谢您的重播,否则我将花费数小时才能摆脱此问题 – Hiren

+0

我不确定您对此感到抱歉。这是否解决了这个问题? – Frank

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

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'") 

希望我不要再说明明显有这个常识得罪你,虽然你的问题是真正缺少的情况下,我没有想法你正在努力完成什么,为什么它不工作,......

而不是这种丑陋的方式来运行查询,将所有代码填充到一行中,总是使其明智,并且总是添加一些错误检查

如果你有跑步查询的至少其中一种习惯这种方式

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

你会被告知此错误,并没有浪费你和他人的时间。