UPDATE, REPLACE - возможно ли с этого запроса узнать ID?

Royal Flash

-=MaestrO=-
UPDATE, REPLACE - возможно ли с этого запроса узнать ID?

Возможно из запроса UPDATE и REPLACE узнать ID(autoincrement, primary_key) изменяемой (добавляемой) записи? Т.е. не запуская 2-ой запрос. Например, если запустить INSERT - и после в php запустить функцию mysql_insert_id() - то узнаем ID. Нет ли нечто похожего для UPDATE и REPLACE?
 

ForJest

- свежая кровь
Нет, нельзя.
UPDATE у тебя делается по определённому условию, так что можно предварительно выбрать записи-кандидаты, которые будут изменены.
UPDATE .... SET f1 ='newvalue' WHERE <условие>
SELECT ... WHERE <условие> AND f1 <> 'newvalue';

REPLACE затрагивает все записи, насколько я понимаю, поэтому это будет просто список IDS, которые учавствовали в REPLACE.
 

Royal Flash

-=MaestrO=-
ForJest
Как сделать в 2 запроса я знаю - не проблема, вот думал, возможно 1-м обойтись... А REPLACE затрагивает только 1 запись, условие бкрется из SET по уникальной записиси. Если колонка f1 - объявлена как UNIQUE и в f1 = значению, которое уже есть в этой колонке, то строка будет обновлена, иначе - добавлена новая.
 
Сверху