MySQL Удаление строк из базы данных

0

Я сохраняю простую связь тегов, и мне интересно, что было бы лучшим способом удалить теги?

Два способа, которыми я знаю:

  • Тег SELECT FROM content_tags ГДЕ content_id = 10
  • Используйте php для сравнения результата с   новые теги и   любые теги из базы данных   результат, который не находится в новых тегах,   запустите запрос на удаление этого тега
  • Остальные теги являются либо новыми   или уже существуют, поэтому я использую INSERT   INTO content_tags... ON DUPLICATE   KEY UPDATE

Или просто:

  • УДАЛИТЬ ОТ тегов content_tags FROM WHERE content_id = 10
  • Вставить каждый тег (нет необходимости использовать ON DUPLICATE KEY UPDATE здесь, как теги для этого content_id уже удалены на этом этапе)

Я использую первый метод, но второй способ, по-видимому, гораздо менее суетный. Но я не уверен, что это "плохо" или неэффективно использовать удаление таким образом. Или, если у вас есть лучший способ, вы можете делиться.

Теги:
sql-delete
delete-row

1 ответ

0
Лучший ответ

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

//маленький пример:)

INSERT INTO content_tags
(content_id, tag_id)
VALUES
(1,1),
(1,2),
(1,3);
  • 0
    Меня больше беспокоит удаление записей, может, вы меня не так поняли? Например, предположим, у вас есть tag_id 1,3,5,7,9 для content_id 10. Теперь я собираюсь обновить теги и удалить 3 и 5, поэтому tag_id теперь составляет 1,7,9. Поэтому, конечно, мне нужно удалить tag_id 3 и 5, но мне нужно использовать php для их сравнения, когда гораздо проще просто удалить все теги 1,3,5,7,9, а затем просто вставить 1,7, 9 вместо. Мне просто интересно, если это плохо для базы данных, чтобы сделать это?
  • 0
    @ Джокер, я не думаю, что это имеет значение. Базы данных в основном созданы для таких операций. Поэтому я не думаю, что вам нужно беспокоиться о том, чтобы делать что-то плохое для базы данных с помощью регулярных запросов. Если вы начинаете манипулировать базой данных с помощью File Manipulation, вам следует начать беспокоиться о повреждении базы данных.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню