gpt4 book ai didi

php - 避免使用受约束的 INSERT 循环 MySQL 查询

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

我理解为什么我们不应该循环 MySQL 查询并且我正在努力避免它。我有一个数组 $names,它包含要插入到 someTable 中的关键字列表,在 MySQL 字段 name 上有一个 UNIQUE 约束:

mysql> select * from someTable where name='stress';
+-----+--------+
| id | name |
+-----+--------+
| 143 | stress |
+-----+--------+
1 row in set (0.00 sec)

mysql> insert into someTable (name) values ('stress');
ERROR 1062 (23000): Duplicate entry 'stress' for key 'name'
mysql>

我更喜欢以下类型的查询以避免循环:

$result = mysql_query("insert into someTable (name) values ('firstName'), ('secondName'), ('thirdName')");

但是,如果任何名称已经存在,则不会插入任何值。此外,$result 的值将为 FALSE我如何构建单个查询来插入值,如果其中任何一个值存在,该查询将不会失败,并且如果其中任何一个被插入,它将返回 TRUE

我知道我可以为此编写一个存储过程,但这只会将循环从 PHP 转移到 MySQL。除了带宽(不重要,因为这是在本地主机上)似乎没有节省任何东西。

最佳答案

INSERT IGNORE INTO someTable (name) values ('firstName'), ('secondName'), ('thirdName')

如果有重复的,它会忽略并继续。

关于php - 避免使用受约束的 INSERT 循环 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055065/

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