2010-03-10 1 views
1

$ db-> update() возвращает затронутое количество строк.Zend DB: Как найти фактическое количество затронутых строк с помощью INSERT ON DUPLICATE KEY?

Там нет способа Zend_Db для вставки ... на дубликат ключа обновления ..., поэтому следует использовать метод запроса():

$ Result = $ db-> запрос ("INSERT INTO таблицы (ключ, поле) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES (field) ');

Чтобы узнать количество пострадавших или вставленные записей: $ result-> сверка()

Но этот метод также подсчитывает все записи, которые были обновлены с тем же значением.

Мне нужно знать все фактические затронутые (измененные) записи.

Спасибо!

ответ

0

К сожалению, «Обновление дублирующего ключа» заставляет ROW_COUNT() или mysql_rows_affected() сообщать строки с несколькими обновлениями, это не количество обновленных строк UNIQUE.

+0

Две стратегии, которые я использую: A) следуют запросу «on-dup-key» с выбором по таблице с критериями, которые определяют уникальную запись. B) сравнить количество записей до/после запроса «по-дупку». –

 Смежные вопросы

  • Нет связанных вопросов^_^