Tuyên bố của bạn là tốt như nó là. Chỉ có một vấn đề là, bạn không thể sử dụng nó như một truy vấn thông thường. Các cấu trúc điều khiển như IF
hoặc WHILE
chỉ được phép trong các thủ tục hoặc hàm được lưu trữ.
Chỉ cần tạo một thủ tục như sau:
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 $$
và gọi nó như thế này:
call select_or_insert();
Vậy là xong.