php - 覆盖唯一的索引值

标签 php mysql

这就是我现在正在做的(nameUNIQUE):

SELECT * FROM fruits WHERE name='apple';

Check if the query returned any result. If yes, don't do anything. If no, a new value has to be inserted:

INSERT INTO fruits (name) VALUES ('apple');

可以不检查值是否已经存在就将值插入表中,而不是上面的方法吗?如果该名称已存在于表中,将抛出错误,如果不存在,将插入一条新记录。

现在我必须在 for 循环中插入 500 条记录,这会导致 1000 次查询。跳过“已经存在”检查可以吗?

最佳答案

您可以使用忽略功能:

INSERT IGNORE INTO fruits VALUES ('apple')

如果有键违规,它只是跳过这个值

关于php - 覆盖唯一的索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3060458/

相关文章:

mysql - Loopback Mysql连接器自定义查询结果到字段值

mysql - 表达这段代码的更简洁的方式是什么?

MYSQL 从内部 SELECT 获取计数并使用相同的 ORDER BY

php - 如何将间隔时间保存在数据库中

php mysql比较两列返回不匹配

php - tinymce - 浏览图像按钮在插入/编辑弹出窗口中不可见

mysql - root 用户访问被拒绝 - MAC OS 上的 mysql

php - 将 JavaScript POST 到 mysql 数据库

php - 在 html 页面上简单显示从数据库检索的名字的最佳方法是什么?

php,从 mysql 获取一行并设置一个变量以显示链接