Задать вопрос
@Seahunter

Как обновить множество строк sql в одном запросе?

Всем привет. Есть задача: нужно импортировать в базу данные из csv, при этом при нахождении дубля обновлять, а при отсутствии вставлять. Дубль, нужно искать по 2-м полям, к примеру from и condition - это строки. Проблема заключается в том, чтобы запихнуть в одни запрос. В гугле предлагают пройтись циклом по массиву и для каждого делать UPDATE - мне не подходит, так как в файле может быть несколько тысяч строк. Есть вариант DUPLICATE KEY UPDATE - но он работает, как я понял, только с PRIMARY KEY. Какие есть варианты? Буду очень благодарен.
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
DevMan
@DevMan
DUPLICATE KEY UPDATE работает по уникальному индексу, который можно (и нужно) навесить на группу полей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
мне не подходит, так как в файле может быть несколько тысяч строк.

Очень забавная фантазия. Если бы действительно надо было только

обновить множество строк sql в одном запросе

как сказано в заголовке вопроса, то прекрасно подошел бы этот вариант

Но для задачи
при нахождении дубля обновлять, а при отсутствии вставлять.


подходит ON DUPLICATE KEY UPDATE по уникальному составному ключу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы