あなたの発言はそのままで大丈夫です。唯一の問題は、通常のクエリのように使用できないことです。 IF
のような制御構造 またはWHILE
ストアドプロシージャまたは関数でのみ許可されます。
次のような手順を作成するだけです:
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 $$
次のように呼びます:
call select_or_insert();
それだけです。