首頁 > 資料庫 > 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);
登入後複製
使用EXISTS 子查詢時,有兩個主要選項:

從從性能角度來看,兩者是等效的。然而,問題出現在可讀性上。

手冊和常見用法

    根據對各種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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板