我试图找出表中是否存在一行。使用 MySQL,执行如下查询是否更好:
SELECT COUNT(*) AS total FROM table1 WHERE ...
并检查总数是否非零,或者最好执行如下查询:
SELECT * FROM table1 WHERE ... LIMIT 1
并检查是否返回任何行?
在这两个查询中,WHERE 子句都使用索引。
你也可以尝试EXISTS
:
SELECT EXISTS(SELECT * FROM table1 WHERE ...)
and per 文档 http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html, 你可以SELECT
任何事物。
传统上,EXISTS 子查询以 SELECT * 开头,但它可以
从 SELECT 5 或 SELECT column1 或任何其他内容开始。MySQL
忽略此类子查询中的 SELECT 列表,因此没有区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)