$db->update() возвращает затронутое количество строк.
Не существует метода Zend_DB для вставки... при обновлении двойного ключа..., поэтому следует использовать метод query():
$result = $db->query('INSERT INTO table(key, field) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(поле)');
Чтобы узнать количество затронутых или вставленных записей: $result->rowCount()
Но этот метод также подсчитывает все записи, которые были обновлены с тем же значением.
Мне нужно знать все фактически затронутые (измененные) записи.
Спасибо!