Vaše vyjádření je v pořádku tak, jak je. Jediný problém je, že to nemůžete použít jako normální dotaz. Řídící struktury jako IF
nebo WHILE
jsou povoleny pouze v uložených procedurách nebo funkcích.
Stačí vytvořit postup, jako je tento:
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 $$
a nazvěte to takto:
call select_or_insert();
To je ono.