Правильно по обоим пунктам (хотя оператор == не существует в MySQL - я предполагаю, что вы просто использовали его для ясности).
В затронутых строках будут учитываться только те строки, которые были изменены . Так что, если ни одно из полей не изменилось, то это никак не повлияет. Обратите внимание, что это сравнение для измененного состояния чувствительно к регистру, в отличие от тех, которые фактически используются в запросах.
Редактировать: http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html
Для операторов UPDATE значение затрагиваемых строк по умолчанию - это количество фактически измененных строк. Если вы укажете флаг CLIENT_FOUND_ROWS для mysql_real_connect () при подключении к mysqld, значение затрагиваемых строк будет количеством «найденных» строк; то есть соответствует предложению WHERE.
Я ищу ссылку на то, как MySQL решает, что "фактически изменилось" или нет. Исходя из формулировки, очевидно, что они означают, что они будут считаться фактически измененными, только если значения до и после не равны на двоичном уровне.
Не углубляясь в источник, я, вероятно, не смогу доказать это, хотя.