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