gpt4 book ai didi

mysql - 您可以在 SELECT 中分配一个变量,然后在同一个 SELECT 中使用它吗?

转载 作者:行者123 更新时间:2023-11-29 08:55:31 24 4
gpt4 key购买 nike

这是我正在尝试编写的查询:

SELECT I.*, 
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
`current_bid` * 1.05 AS `min_bid`
...

我收到错误“未知列‘current_bid’”。我假设这是因为我刚刚在之前的行中创建了当前列。无论如何,我可以让这个查询按照我想要的方式工作吗?我想让它工作的一种方法是使用两个基本相同的 if 语句,如下所示:

SELECT I.*, 
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`) * 1.05, I.`start` * 1.05) AS `min_id`
...

但这似乎效率极低。

此外,有没有一种方法可以分配 current 而无需计算 MAX(B.amount) 两次?

最佳答案

SELECT
C.CURRENT_BID,
C.CURRENT_BID * 1.05 AS MIN_BID
FROM
(
SELECT MAX(B.AMOUNT) AS CURRENT_BID FROM ...
) C

我非常确定嵌套查询会首先执行,以便您可以使用它们的结果。而同一查询中的不同列被视为并发,因此您不能使它们相互依赖。

关于mysql - 您可以在 SELECT 中分配一个变量,然后在同一个 SELECT 中使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com