Je statement is goed zoals het is. Het enige probleem is dat je het niet als een normale zoekopdracht kunt gebruiken. Besturingsstructuren zoals IF
of WHILE
zijn alleen toegestaan in opgeslagen procedures of functies.
Maak gewoon een procedure zoals deze:
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 $$
en noem het zo:
call select_or_insert();
Dat is het.