Dit udsagn er fint, som det er. Det eneste problem er, at du ikke kan bruge det som en normal forespørgsel. Kontrolstrukturer som IF
eller WHILE
er kun tilladt i lagrede procedurer eller funktioner.
Bare opret en procedure som denne:
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 $$
og kald det sådan her:
call select_or_insert();
Det var det.