Your statement is fine as it is. Only problem is, you can't use it like a normal query. Control structures like IF
or WHILE
are only allowed in stored procedures or functions.
Just create a procedure like this:
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 $$
and call it like this:
call select_or_insert();
That's it.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…