在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 SELECT 查询中重用计算字段?的详细内容。更多信息请关注PHP中文网其他相关文章!