小编典典

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

all

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

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

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

SELECT * FROM table1 WHERE ... LIMIT 1

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

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


阅读 83

收藏
2022-03-25

共1个答案

小编典典

您也可以尝试EXISTS

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

根据文档,您可以做SELECT任何事情。

传统上,EXISTS 子查询以 SELECT * 开头,但它可以以 SELECT 5 或 SELECT column1 或任何其他开头。
MySQL 在这样的子查询中忽略了 SELECT 列表,因此没有区别。

2022-03-25