我需要运行一个带有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);