gpt4 book ai didi

sql - 我可以向 mysql 添加一个条目并返回一个查询中不存在的列吗?

转载 作者:行者123 更新时间:2023-11-29 15:07:32 25 4
gpt4 key购买 nike

我可以用一个查询来检查一个条目是否在 mysql 表中,如果存在,则返回一列,但如果不存在,则插入它并返回一个值?我有一个具有以下布局的用户表:

userID - int, auto-increment
userName - varchar(100)
active - tinyint(1)

我想做一些类似的事情

select userID from users where userName='<some value>'

如果userName存在,则返回userID,如果不存在,则插入并返回新增加的userID。

我知道我可以在两个查询中执行此操作(一个用于检查 userName 是否存在,然后另一个用于插入),但是我可以在一个查询中执行此操作吗?我可以创建一个存储过程,只从我的代码中调用一件事,但我可以想象该存储过程的唯一方法是也执行两个查询。

我看到诸如 REPLACE INTO 和 ON DUPLICATE KEY UPDATE 之类的内容,但这些似乎仅适用于更新,不适用于选择值。

最佳答案

您可以检查它是否存在并将其插入到一个查询中:

insert into users (userName) values ('<some value>')
where not exists (
select * from users where userName = '<some value>'
)

但之后您仍然需要选择用户 ID:

select userid from users where userName = '<some value>'

我认为 INSERT 不能位于 SELECT 中。

关于sql - 我可以向 mysql 添加一个条目并返回一个查询中不存在的列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691180/

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