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

标签 sql mysql performance exists

我试图找出表中是否存在一行。使用 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.

关于sql - 测试 MySQL 表中是否存在行的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232795/

相关文章:

postgresql - EXPLAIN ANALYZE QUERY 如何用于测量查询性能?

performance - 列表、数组和可变数组之间的埃拉托色尼筛法的理想实现是什么?

performance - 检查 Chrome 扩展程序的性能

php - 获取最后插入行的复杂主键

php - 尝试将主键值分配给按钮时出错?

java - 我怎样才能在Hibernate中调用这种函数呢?

php - 我的 php 表更改了数据库中的错误行

MySQL - 索引问题

c# - 如何获取 Facebook 应用程序的当前在线用户列表?

php - 将 csv 导入到 mysql 数据库表期间找不到文件