La tua affermazione va bene così com'è. L'unico problema è che non puoi usarlo come una normale query. Strutture di controllo come IF
o WHILE
sono consentiti solo nelle procedure o funzioni memorizzate.
Basta creare una procedura come questa:
delimiter $$
create procedure select_or_insert()
begin
IF EXISTS (select * from users where username = 'something') THEN
select id from users where username = 'something';
ELSE
insert into users (username) values ('something');
END IF;
end $$
e chiamalo così:
call select_or_insert();
Questo è tutto.