Удалить только строку, в которой выполнены оба условия

#php #mysql #sql-delete

#php #mysql #sql-удалить

Вопрос:

Например:

У меня есть таблица со списками покупок, которая содержит идентификаторы пользователей и list_names, подобные этому:

  • идентификатор пользователя 1, имя_списка 1
  • идентификатор пользователя 1, имя_списка 2
  • идентификатор пользователя 2, имя_списка 1

Есть ли способ для меня удалить только строку, в которой user_id = 1 и list_id = 1, чтобы остались user_id 2, list_name 1 и user_id 1, list_name 2?

Я использовал этот код:

 mysql_query("DELETE 
               FROM user_in_shoppinglists 
              WHERE (user_id = '$user_id' AND list_id = '$list_id')
            ")
  

Но при этом удаляются строки как с list_name 1, так и с list_name 2 для user_id 1.

Комментарии:

1. это должно сработать так, как ожидалось вы уверены в значениях ваших переменных? помогает создать запрос в его собственной строке, после чего вы можете повторить его

2. $q="DELETE FROM user_in_shoppinglists WHERE (user_id = '$user_id' AND list_id = '$list_id')"; echo $q; exit();

3. Да, user_id = 1 и list_id = 1. Попробую echo!

4. @Dagon : вам следует использовать die($q) который распечатал бы строку и завершил выполнение кода, выполнив таким образом две команды одновременно.

5. @user1406062 ну, это обычная микрооптимизация отладки