一尘不染

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

mysql

我试图找出表中是否存在行。使用MySQL,最好执行如下查询:

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

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

SELECT * FROM table1 WHERE ... LIMIT 1

并检查是否返回任何行?

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


阅读 401

收藏
2020-05-17

共1个答案

一尘不染

您也可以尝试EXISTS

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

根据文档,您可以执行SELECT任何操作。

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

2020-05-17