是否有任何解決方法,所以我可以實際做這樣的事情,而不必重複整個表達式或強制聯合或臨時表?我可以在MySQL查詢中重新使用表達式作爲另一個字段的變量嗎?
自變量1,因爲作品MySQL如何,上述概念不能正常工作沒有定義,並提供給第2個項目。
我要麼必須重複variable2的表達式,要麼使用UNION或臨時表並使用兩遍。
有沒有一些技巧,我不知道要更有效地完成?
(請注意,我需要知道這兩個變量1和變量2,因爲他們然後被用於一個INSERT答案)
感謝您的想法!
是否有任何解決方法,所以我可以實際做這樣的事情,而不必重複整個表達式或強制聯合或臨時表?我可以在MySQL查詢中重新使用表達式作爲另一個字段的變量嗎?
自變量1,因爲作品MySQL如何,上述概念不能正常工作沒有定義,並提供給第2個項目。
我要麼必須重複variable2的表達式,要麼使用UNION或臨時表並使用兩遍。
有沒有一些技巧,我不知道要更有效地完成?
(請注意,我需要知道這兩個變量1和變量2,因爲他們然後被用於一個INSERT答案)
感謝您的想法!
推到一個派生表的第一個計算:
select variable1
, complex_function(variable1, other_column) as variable2
, yet_another column
from (select complex_operation as variable1
, other_column
, yet_another_column
from whatever) dt
的
它比我想要的更混亂,但我會給你所有努力的最佳答案,謝謝。 – 2009-09-02 17:56:37
SELECT @v1:=(complex expression) AS variable1,
(complex expression * @v1) AS variable2
如果只是那麼簡單,我會感到震驚,弄清楚,但謝謝你! – 2009-09-02 14:59:36
啊,你知道嗎?上面由knittl列出的手冊頁重複警告,不要使用或依賴於在同一個SELECT語句中設置的變量,因爲這些字段可能會按照WHERE等順序亂序執行,並且變量是從前一次執行中保留的。 因此,在同一個SELECT內重新使用變量可能是一個壞主意,它意味着順序查詢。 – 2009-09-02 15:10:58
我個人從來沒有見過手冊中警告過的行爲,即使試圖實現它。但如果手冊警告它,那麼我不會使用它。 * bleh * – longneck 2009-09-02 16:19:23
我認爲唯一的辦法是重複你的第一個complex_expression,雖然我認爲mysql可以處理這種情況。
編輯:一個快速搜索變成了這樣:http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
謝謝你的鏈接,不知怎的,我完全錯過了MySQL的那一部分! – 2009-09-02 15:00:34
您的手冊鏈接對了解longneck解決方案存在缺陷的原因非常有幫助,再次感謝。 – 2009-09-02 15:13:36
可能重複[我可以在一個SELECT查詢resuse計算字段?] (http://stackoverflow.com/questions/6085443/can-i-resuse-a-calculated-field-in-a-select-query) – 2015-09-08 09:13:26