sql - 测试 MySQL 表中是否存在行的最佳方法

我正在尝试找出表中是否存在一行。使用 MySQL,做这样的查询是否更好:

SELECT COUNT(*) AS total FROM table1 WHERE ...

并检查总数是否为非零,或者执行如下查询是否更好:

SELECT * FROM table1 WHERE ... LIMIT 1

并检查是否返回了任何行?

在这两个查询中,WHERE 子句都使用索引。

最佳答案

你也可以试试EXISTS:

SELECT EXISTS(SELECT * FROM table1 WHERE ...)

根据 the documentation ,你可以SELECT任何东西。

Traditionally, an EXISTS subquery starts with SELECT *, but it could begin with SELECT 5 or SELECT column1 or anything at all. MySQL ignores the SELECT list in such a subquery, so it makes no difference.

https://stackoverflow.com/questions/1676551/

相关文章:

mysql - 如何修改 MySQL 表中列的大小?

mysql - 表 'performance_schema.session_variables' 不

mysql - 更新列值,替换字符串的一部分

mysql - 在 MySQL 数据库的每个表的字段中搜索文本

mysql - 如何使用选项从命令行导出和导入 .sql 文件?

mysql - 如何在 MySQL 中返回数据透视表输出?

mysql - 如何设置 MySQL 的时区?

mysql - 我应该使用什么列类型/长度将 Bcrypt 散列密码存储在数据库中?

mysql - 在性能开始下降之前 MySQL 数据库可以有多大

mysql - 字符集和排序规则到底是什么意思?