Ragazzi, è la prima volta che mi cimento in una query condizionata, mi potete dare una mano?

questa è la query:

codice:
select IF ((SELECT count(*) FROM impostazioni where Numero_Img = 1 and DurataValiditaMessaggi = 1 and Descrizione = 'PIPPO' and 
DataProssimaPuliziaDB = '2005-10-28' and PeriodicitaPuliziaDB = 20)=0,
(INSERT INTO impostazioni VALUES (0,1,1,'PIPPO', '2005-10-28',10)),
(UPDATE impostazioni SET Numero_Img=1,DurataValiditaMessaggi=1,Descrizione='PIPPO',DataProssimaPuliziaDB ='2005-10-28',PeriodicitaPuliziaDB=40 WHERE Id = 1));
mi potete dire comq mai non va?

quello che voglio fare è sapere se un determinato record è presente sul db, se è presente aggiorno e se non lo è inserisco.
Mi va in errore,non mi accetta la insert e nemmeno l'update.
premetto che antrambe sono corrette.

grazie in anticipo