我正在尝试使用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/