2
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;
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;
你的说法是好的,因为它是。唯一的问题是,你不能像普通查询那样使用它。像IF
或WHILE
这样的控制结构只能在存储过程或函数中使用。
只需创建一个程序是这样的:
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 $$
,并调用它像这样:
call select_or_insert();
就是这样。
你可以尝试这样的: -
if exists(select * from mytable where field = 'something')
begin
select somefield from mytable where field = 'something';
end
else
begin
insert into users (username) values ('something');
end
或
if not exists(select * from mytable where field = 'something')
begin
insert into users (username) values ('something');
end
else
begin
select somefield from mytable where field = 'something';
end
虽然上述两个查询是相同的。
,或者尝试使用这个如果:
IF EXISTS (select * from mytable where users = 'something')
select field from mytable where users = 'something'
else
into mytable (users) values ('something')
不幸的是,根据我编辑的问题 – cheshirecatalyst
的错误仍然是一样的错误,谢谢你看看^ _^ – cheshirecatalyst
@cheshirecatalyst: - 请教你现在就试试吧。我相信这会起作用!! :) –