gpt4 book ai didi

php - 如何使用一个插入语句插入多个项目,同时检测唯一列是否具有重复值?

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

如果已经存在相同的问题,请将其标记为重复。

我正在使用 MySQL 进行插入,并且我正在使用 PDO 准备好的语句。我现在想将行数组插入数据库中。类似的问题可以在这里找到Multiple Values Insert with PDO Prepared Statements 。但是,作者没有考虑唯一列上出现重复的情况。例如,请考虑下表:

id    name    counter

其中 name 具有唯一属性,每当尝试插入现有 name 时,计数器就会增加 1。现在我想插入一个具有三个名称的数组,如下所示:

$name_array = array('User A','User B','User C');

假设我的表当前只有用户A,其对应的计数器为1。那么,我希望插入后的表如下:

id    name      counter
1 User A 2
2 User B 1
3 User C 1

我可以使用一条插入语句来完成此操作吗?如果是,那么如何?

最佳答案

首先:恕我直言,这与 PHP、PDO 或准备好的语句无关 - 它是关于在特殊情况下将 INSERT 转换为 UPDATE

既然如此,我将通过使用 INSERT ON DUPLICATE KEY UPDATE 构造来解决这个问题,类似于

INSERT INTO tablename(name)
VALUES ('User A'), ('User B'), ('User C')
ON DUPLICATE KEY UPDATE counter=counter+1;

如何将此查询发送到 MySQL 服务器(无论是 PHP/PDO 还是其他)应该并不重要。

关于php - 如何使用一个插入语句插入多个项目,同时检测唯一列是否具有重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31280416/

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