gpt4 book ai didi

php - MySQL 如果一个或多个行因为不存在而未更新,则将它们插入 [ WHERE IN ]

转载 作者:行者123 更新时间:2023-11-29 00:09:51 25 4
gpt4 key购买 nike

我正在为我的网站做一个类别系统,我需要能够在它的表中插入一个类别,如果它由于不存在而没有更新的话。

我的第一部分更新了此处 WHERE IN 语句中定义的所有类别:

UPDATE `cat` SET `posts` = posts +1 WHERE cat IN ('category1', 'category2', 'idonotexist1', 'idonotexist2')

我如何让 SQL 有效地将任何因不存在而无法更新的类别插入到表中?

具体来说,我知道当您只进行一次更新时该怎么做,但是对于 WHERE IN,这对我来说有点复杂。我正在寻找可以将 idonotexit1idonotexist2 插入表中的东西,因为它不存在。

我会提供所有要求的信息。

最佳答案

首先,确保您的 cat 表中有唯一索引:

alter table cat add unique index idx_cat(cat);

之后,对于列表中的每个类别,您可以执行如下操作:

insert into cat values('category1', 1)
on duplicate key update posts = posts + 1;

关于php - MySQL 如果一个或多个行因为不存在而未更新,则将它们插入 [ WHERE IN ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694908/

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