MySQL, удаление нескольких записей - PullRequest
1 голос
/ 04 сентября 2011

У меня есть база данных с кучей магазинов, и один раз в месяц кто-то отправляет мне электронную таблицу с отменами за этот месяц, поэтому мне нужно удалять 30-40 магазинов каждый месяц.

Есть ли быстрый способ сделать это? Прямо сейчас я просто захожу и удаляю их вручную, потому что иногда их всего 8-10, но в этой последней таблице было много, и я хотел бы сделать этот процесс намного быстрее.

Ответы [ 2 ]

6 голосов
/ 04 сентября 2011

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

В противном случае вы можете просто использовать оператор SQL как таковой

delete from stores where store_id in (:ids);

или

delete from stores where store_name in (:names);

и вручную скопируйте список идентификаторов или имен магазинов в виде списка с разделителями-запятыми, где находится переменная:. Если вы используете имена, просто убедитесь, что каждое имя заключено в '.

0 голосов
/ 04 сентября 2011

Это зависит от того, есть ли в этих магазинах что-то общее, что позволяет вам их классифицировать. В MySql синтаксис: DELETE FROM tableName WHERE condition;, где tableName - это имя таблицы, в которой вы собираетесь выполнить запрос DELETE, а condition - логическое выражение, которое сообщает СУБД, как их классифицировать: т.е.

DELETE FROM shop WHERE NOW() - last_activity > 7;

Это исключило бы магазины, которые не работали более недели.

...