gpt4 book ai didi

mysql:如果不存在则插入记录,否则返回记录的id

转载 作者:IT老高 更新时间:2023-10-28 23:50:00 26 4
gpt4 key购买 nike

我需要在表中插入唯一值,并且需要记录的 id,需要在关系表中插入这些 id,需要查询插入记录,如果不存在则返回插入的id,如果存在则返回记录主键(id)。

我想为多个值执行此操作,例如橙色、芒果、香蕉,例如批量插入。

架构:

------------
id | tag |
------------
1 | orange|
------------

我已经为一条记录尝试过这个

INSERT INTO `tags` (`tag`) 
SELECT 'myvalue1'
FROM tags
WHERE NOT EXISTS (SELECT 1 FROM `tags` WHERE `tag`='myvalue1')
LIMIT 1

发布问题是为了找出一些优化的解决方案,我不想在代码中使用额外的循环来匹配来自 db 的值。

最佳答案

INSERT ... ON DUPLICATE KEY UPDATE 的文档页面上有一个示例:

您的查询将如下所示:

INSERT INTO `tags` (`tag`) VALUES ('myvalue1')
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), `tag`='myvalue1';
SELECT LAST_INSERT_ID();

关于mysql:如果不存在则插入记录,否则返回记录的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20479971/

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