Mysql удалить запрос, используя более одного условия в PHP - PullRequest
0 голосов
/ 06 ноября 2011

Я хочу удалить данные из таблицы (PHP + Mysql) с тремя условиями.Я пробовал оба «И» и «,», но не работает.

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

Есть ли способ?

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Если вы ищете запрос, который удалит результаты, соответствующие всем трем условиям, ваш запрос точен:

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' OR `meta_name` = 'post_tag' OR `meta_value` = '$tag'")

Надеюсь, я не оскорбляю вас, повторяя очевидное с помощью этих общих знаний, хотя ваш вопрос действительно отсутствует в контексте, я понятия не имею, что именно вы пытаетесь достичь, почему это не работает. ..

0 голосов
/ 06 ноября 2011

вместо этого уродливого способа выполнения запросов, помещающего весь ваш код в одну строку, всегда делайте его разумным и всегда добавляйте проверку ошибок .

Если у вас есть привычкаесли вы выполняете запросы хотя бы таким образом

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

, вы будете уведомлены об ошибке и не будете тратить время на себя и других людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...