По полю text вам нормального индекса не построить, поэтому можно поступить так:
1) добавить поле hash и сделать его unique key
2) в поле hash писать что то типа md5(trim(title)+trim(text))
3)
INSERT INTO
table
SET
`id` = ?,
`title` = ?,
`text` = ?,
`hash`= ?
ON DUPLICATE KEY UPDATE
id= ?
Делает то же что replace только без удаления записи
p.s. вы уверенны что вам надо обновлять поле id ? я спрашиваю потому, что оно обычно автоинкремент и примари кей, т.е. в таком случае обновить id на тоже значение, что уже существует не получиться.