下面是一個查詢我試着寫:你可以在SELECT中分配一個變量,然後在同一個SELECT中使用它嗎?
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)
兩次?
你打敗了我......我認爲這是唯一的方法。雖然這似乎很奇怪,但爲什麼SQL沒有內置的方式來替換列。 – McGarnagle 2012-04-09 05:50:20