Частый случай когда нужно вставить запись, а если запись уже есть с таким UNIQ ключом, то вернуть поле AUTO_INCREMENT ID для это записи.
Сейчас делаю в лоб:
if(mysql_query("INSERT INTO tab (hash) VALUE ('hash')"))
{
if(mysql_errno()== ER_DUP_KEY)
{
mysql_query("SELECT id FROM tab WHERE hash = 'hash'");
}
}
Но по идее сервер же внутри уже пощупал эту запись и знает где она:)
ps INSERT ... ON DUPLICATE KEY UPDATE к сожалению не вернет AUTO_INCREMENT column для случая с UPDATE