Votre énoncé est bien tel qu'il est. Le seul problème est que vous ne pouvez pas l'utiliser comme une requête normale. Structures de contrôle comme IF
ou WHILE
ne sont autorisés que dans les procédures ou fonctions stockées.
Créez simplement une procédure comme celle-ci :
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 $$
et appelez-le comme ceci :
call select_or_insert();
C'est tout.