gpt4 book ai didi

php - MySQL 多对多具有唯一键和更新/选择如果存在否则插入

转载 作者:行者123 更新时间:2023-11-29 05:45:21 24 4
gpt4 key购买 nike

我的目标是在我的 MySQL 数据库中建立多对多关系,我已经到达了另一个需要构建的桥梁。

当前表:
用户 (id, name)
标签(id、名称)
User_Tags (user_id, tag_id)

目标如下:
我希望能够获取标签,即:#fb 并将其插入到我的 Tags 数据库中,该数据库对 name 具有唯一约束如果标签存在,我想返回它的 id

我想将 tag.id 和当前用户的 user.id 插入到 User_Tags 中。我对 User_Tags 表没有任何唯一约束,因为我希望能够跟踪用户最常用的标签,并将它们显示在按使用频率排序的列表中。

我目前正在使用准备好的语句在 PHP 中开发这个项目。
此外,性能目前不是问题,因为我的用户数量仍然很少,但它正在稳步增长,将来可能会成为问题。

最佳答案

您可以使用 MySQL 的 ON DUPLICATE KEY UPDATELAST_INSERT_ID(expr)获取标签 ID,无论它是否已插入或已经存在,例如

INSERT INTO
Tags
(name)
VALUES
(:name)
ON DUPLICATE KEY UPDATE
id = LAST_INSERT_ID(id)

INSERT INTO
User_Tags
(user_id, tag_id)
VALUES
(:userid, LAST_INSERT_ID())

关于php - MySQL 多对多具有唯一键和更新/选择如果存在否则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2796609/

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