在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'")
有什么办法吗?
答
如果你正在寻找一个会删除匹配所有你的三个条件,结果查询,你的查询是准确的:
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);
你会被告知此错误,并没有浪费你和他人的时间。
我在所示的代码中看不到任何错误。仔细检查表名和列名,并打印包含变量值的结果字符串。然后检查表中的任何字段是否与条件匹配。 (所有三个值必须完全匹配) – Frank
@frank对不起我的错误,我每次都使用posts-meta而不是posts_meta,再次抱歉。但感谢您的重播,否则我将花费数小时才能摆脱此问题 – Hiren
我不确定您对此感到抱歉。这是否解决了这个问题? – Frank