在MySQL中有效重複使用計算的字段
MySQL允許在語句中重複使用計算的字段,簡化複雜的查詢並減少冗餘。但是,不直接支持在同一列表中直接引用計算的字段。 讓我們用一個示例來說明這一點:
以下查詢嘗試重複使用SELECT
>計算:SELECT
>未被識別為列total_sale
>。
<code class="language-sql">SELECT s.f1 + s.f2 as total_sale, s.f1 / total_sale as f1_percent FROM sales s;</code>解決方案:用戶定義的變量
total_sale
f1_percent
為了克服這一限制,我們可以利用MySQL的用戶定義變量:
>在這裡,我們將的結果分配給用戶變量
。 然後,此變量可用於隨後的計算。
<code class="language-sql">SELECT @total_sale := s.f1 + s.f2 as total_sale, s.f1 / @total_sale as f1_percent FROM sales s;</code>重要的考慮因素:
MySQL的文檔警告在同一語句中分配和讀取用戶變量時依靠評估順序。 這種行為可能是不可預測的。 有關可靠的結果,尤其是在復雜的查詢中,請考慮替代方法,例如子查詢或常見表表達式(CTE),這些方法可提供更好的清晰度和可預測性。 有關更多詳細信息,請諮詢有關用戶變量的官方MySQL文檔。 s.f1 s.f2
>
以上是如何在MySQL選擇查詢中重用計算的字段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!