我想删除表中的数据(PHP + Mysql),有三个条件。我尝试了'AND'和','但是不起作用。
mysql_query("DELETE FROM `posts-meta` WHERE `post_id` = '$postid' AND `meta_name` = 'post_tag' AND `meta_value` = '$tag'")
有什么办法吗?
答案 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);
您已收到错误通知,并且没有浪费您和其他人的时间。