2015-10-09 5 views
0

У меня есть таблица называется user_favs так:Удаление нескольких строк из MYSQL таблицы на основе данных столбцов в PHP

id | user_id | post_id 
---------------------- 
50 | 291  | 1027 
51 | 10  | 180 
52 | 771  | 1027 
53 | 92  | 133 
54 | 523  | 1027 

Как настроить запрос к базе данных в PHP, чтобы удалить все строки, содержащие post_id 1027?

Я знаю, как сделать это для отдельных записей:

DELETE FROM user_favs WHERE post_id = 1027 

Но я не знаю, как удалить все строки, содержащие post_id 1027.

Является ли это что-то вроде:

DELETE * FROM user_favs WHERE post_id = 1027 

Я не хочу попробовать, не зная, в случае, если я вымял все это;)

+2

Если вы действительно не уверены в том, что делает инструкция или серия инструкций, сделайте резервную копию своей базы данных с помощью mysqldump и попробуйте ее на копии. – Ghedipunk

ответ

3

это:

DELETE FROM user_favs WHERE post_id = 1027 

на самом деле не удалять только одну строку. он удалит все строки, соответствующие критериям post_id=1027

+0

Ах, вот что я хочу! И теперь я прочитал его, я чувствую себя очень глупо, так как теперь я могу точно понять, почему он это сделает. Я возьму шляпу dunce ... – Grant

+0

yeap. в sql нет «удалить одну строку», она работает с критериями - все, что соответствует критериям, будет удалено, будь то одна строка, нуль или миллион. –

1

Я уверен, что первое утверждение будет работать. В любом случае, я бы рекомендовал вам сделать резервную копию вашего db, прежде чем делать какие-либо изменения, даже более того, я бы рекомендовал вам выполнять этот тип испытаний в бродячем поле или в базе данных, которая вам не нужна, как та, которую вы могли бы создать в ваш локальный хост. вместо удаления, чтобы проверить код, который вы могли бы сделать: SELECT * FROM user_favs WHERE post_id = 1027 и посмотреть, сработало ли это, если результаты являются кортежами, которые вы хотите удалить, whoala!

Смежные вопросы