gpt4 book ai didi

MySql 如果存在选择 ELSE 插入

转载 作者:可可西里 更新时间:2023-11-01 07:28:24 24 4
gpt4 key购买 nike

我已经为此苦恼了两个小时。我想选择或插入一条记录。如果记录存在,请选择他的 ID,否则将其插入并获取新插入的 ID。现在我正在尝试运行它,但我仍然遇到错误

SELECT CASE WHEN (SELECT COUNT(*) FROM Domains WHERE Domain = @domain)>0 
THEN
(SELECT Domain_ID FROM Domains WHERE Domain = @domain)
ELSE
INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description);

最佳答案

您的案例缺少 End

Case when (something) then (Some)
else (another thing) end

无论如何,你的 else 必须返回一个 select,一个 insert 不会返回任何东西。如果你想插入如果不存在然后返回插入的值(或返回如果存在)这样做:

INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description) where not exists (select 1 from Domains WHERE Domain = @domain);

SELECT Domain_ID FROM Domains WHERE Domain = @domain

如果不存在则插入,然后返回。如果已经存在,则不插入,并返回值

2016 年 1 月编辑

最后一个查询不适用于MySql,它是MSSQL语法

关于MySql 如果存在选择 ELSE 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com