首页 > 数据库 > mysql教程 > EXISTS 子查询:SELECT * 或 SELECT 1 – 哪个更具可读性?

EXISTS 子查询:SELECT * 或 SELECT 1 – 哪个更具可读性?

Patricia Arquette
发布: 2024-12-29 16:04:12
原创
960 人浏览过

EXISTS Subqueries: SELECT * or SELECT 1 – Which is More Readable?

EXISTS 子查询的可读性

使用 EXISTS 子查询时,有两个主要选项:

SELECT foo FROM bar WHERE EXISTS (SELECT * FROM baz WHERE baz.id = bar.id);
SELECT foo FROM bar WHERE EXISTS (SELECT 1 FROM baz WHERE baz.id = bar.id);
登录后复制

从从性能角度来看,两者是等效的。然而,问题出现在可读性上。

手册和常见用法

根据对各种 RDBMS 手册和在线搜索进行的研究,似乎存在分歧:

  • Microsoft SQL、Oracle 和 MySQL 在其应用中偏爱 SELECT *示例。
  • PostgreSQL 更喜欢 SELECT 1。
  • SQLite 没有提供任何明确的示例。

Stack Overflow 搜索结果表明 SELECT * 在代码。

直观方法

问题提出了 SELECT * 是否更直观。然而,答案表明这并不是最直观的选择。相反,建议使用 SELECT 1,因为:

  • 它明确说明存在的条件。
  • 它符合 ANSI 标准,该标准指定子查询返回的特定行是不相关的对于 EXISTS。
  • 它揭穿了 SELECT 1 是存在快捷方式的神话

结论

虽然没有明确的共识,但 EXISTS 子查询中的 SELECT 1 被认为更直观。它强调存在的一面,符合标准,消除误解。最终,可读性偏好可能会根据开发人员的理解和风格而有所不同。

以上是EXISTS 子查询:SELECT * 或 SELECT 1 – 哪个更具可读性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板