mysql - 如何找出某个值是否作为主键存在于mySql中?

标签 mysql

查明具有特定值的主键是否已存在于表中的最佳方法是什么?

我能想到的:

SELECT key FROM table WHERE key = 'value';

并计算结果,或者:

SELECT SQL_CALC_FOUND_ROWS key FROM table WHERE key = 'value' LIMIT 1;
SELECT FOUND_ROWS();

最佳答案

我认为你在问题中的任何一个建议都是合适的。

不过,根据您使用它的方式,您可以通过执行 INSERT IGNORE 来节省时间,这允许您在主键不存在时插入新行。如果它确实存在,错误将被忽略,因此您可以照常继续。

根据您的使用情况,其他类似选项包括使用 REPLACE 或 INSERT ON DUPLICATE KEY UPDATE 类型的插入。这允许您在主键已存在的情况下更新现有条目,否则它只会插入您的新条目。

关于mysql - 如何找出某个值是否作为主键存在于mySql中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/164927/

相关文章:

mysql - 语法错误代码: 1064 in MYSQL statement

mysql - 机车用mysql

mysql - 表达式引擎 SQL AND OR 查询?

mysql - 上一年每个用户每月的平均帖子- MYSQL

mysql - 生成列的值未出现在表中

java - 使用 Hibernate 和 MySQL 处理 upsert 的优雅方式

php - Mysql数据库连接到PHP

php - MySQL - 按日期选择行并传递给 php 数组

php - jquery ui 选项卡和 php 回显数据

mysql - 验证数据库中唯一性的最佳实践?