Deine Aussage ist so in Ordnung. Das einzige Problem ist, dass Sie es nicht wie eine normale Abfrage verwenden können. Kontrollstrukturen wie IF
oder WHILE
sind nur in gespeicherten Prozeduren oder Funktionen erlaubt.
Erstellen Sie einfach eine Prozedur wie diese:
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 $$
und nennen Sie es so:
call select_or_insert();
Das ist es.