mysql - 相同查询 MySQL 用户定义变量

标签 mysql sql

我正在尝试使用MySQL's user defined variables ,但由于限制,我无法按照演示的方式使用它们,其中一个查询设置变量,第二个查询使用它。我的要求是能够在查询中多次使用它。

考虑以下因素:

SELECT (Some Really Taxing Calculation) AS Total FROM Purchases
WHERE Total < 55 AND itemName = "Bananas"
OR Total > 90 AND itemName = "Apples"
OR Total = 30 AND itemName = "Peaches"
ORDER BY Total

如果只运行一次 Total 计算,然后在整个查询中多次使用结果,那就太好了。目前,我让它在一个查询中工作的唯一方法是在每个使用它的地方重新运行它,因为 Total 返回一个错误,表示已使用未知列。

最佳答案

在子查询中嵌入总计算...

SELECT
  Total
FROM
  (SELECT (Some Really Taxing Calculation) AS Total, * FROM Purchases) AS Purchases
WHERE Total < 55 AND itemName = "Bananas"
   OR Total > 90 AND itemName = "Apples"
   OR Total = 30 AND itemName = "Peaches"
ORDER BY
  Total

注意:子查询(内联 View )在生成其计划时由 MySQL 扩展。将查询放在括号中并不一定意味着您强制它变得愚蠢低效:)

关于mysql - 相同查询 MySQL 用户定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447380/

相关文章:

mysql - 从任务数据库设计中赚取xp点

sql - 分区 Athena 表中的子查询

php - 每次 while 循环运行时调用 javascript 以提供来自数据库的唯一时间

php - unicode 和 utf8 数据从数据库读取到 php/html

php - 单击复选框时如何添加新内容?

mysql - 如何在MySql中按日期顺序显示最近添加的数据?

MySQL - 连接和连接

sql - 帮助 MySQL 加入

MySQL 将 STR_TO_DATE 转换为 10 位微秒

mysql 获取特定结果的行号