и при этом вернуть кол-во обновленных записей? upsert не возвращает кол-во обновляемых записей
2 запроса: сначала получаешь количество, потом делаешь обновление
или задачи типа какие-то обновятся, а какие-то вставятся и ты хочешь количество именно обновленных получить?
Он возвращает общее кол-во вставленных записей, но не обновленных
Ну я бы сначала вычислил те, которые обновиться должны. Не знаю по какому ты там принципу это делаешь, но допустим where in. А вторым запросом уже делал upsert.
Это число возвращает PDO при работе с БД. Это уже далеко не Лара.
Пока что лучший вариант который я вижу, это как предложили выше, count запрос на текущее количество записей, и разница между результатами upsert-а и count-а
А для чего это может понадобиться? Ну узнал ты кол-во обновлённых строк, что с этой информацией можно делать?
В тестовом нужно вывести)
в твоем случае тебе верно указали выше, нужно взять за основу то значение, что возвращает метода в качестве результата, это и будет кол-во обновленных + добавленных строк
Заметил, что upsert проверяет лишь входные данных, а не сверяет с теми, что есть уже в базе. Использовал updateOrInsert + 2 лишних запроса count. До начала записи в базу и после. Пробовал через updateOrCreate, так выходит без лишних запросов подсчитать, но это более дорогостоящая операция. В следствии чего получаю ошибку времени выполнения скрипта
Обсуждают сегодня