在MYSQL中运行IF ELSE语句以运行不同的查询



我需要运行一个带有if-else语句的查询(如果可能的话,在MYSQL中(

我想:SELECT id FROM user_name_table WHERE user_name = @name;

如果查询结果返回null,我想将@name插入到user_name_table中,并获得自动递增生成的id我需要将这个结果存储在一个变量中,以便稍后在另一个insert查询中使用它。

这是我所能达到的,在这种情况下,如果";Sam"exists将返回ID两次,否则将返回ID和"0">

SET @name = "Sam";
SELECT id, IF(id!=0, id, 0)
FROM user_name WHERE user_name = @name;

如果您不希望name重复,则添加一个唯一的约束或索引:

alter table user_name add constraint unq_user_name_name unique (name);

然后,如果你想插入一个新名称,你可以简单地使用:

insert into user_name (name)
values (@name);

如果存在重复,这将返回一个错误。如果你不想出错,我建议:

insert into user_name (name)
values (@name)
on duplicate key update name = values(name);

最新更新