既然你不能在WHERE子句中使用MySQL的計算列如下:計算列 - 性能
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE d > n
ORDER by d
,你必須使用
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE (a*b+c) > n
ORDER by d
的是計算(在這個例子中「(a * b + c)」每行或兩次執行一次?有沒有辦法讓它更快?我覺得很奇怪,可以對列進行排序但不能有WHERE子句。
非常感謝!它在性能方面是否比在WHERE子句中重複公式更好/相同/更差?可讀性當然更好:) –
可能mysql優化器能夠檢測到WHERE和SELECT公式是相同的,並且不會計算兩次。但是,鑑於mysql的記錄,我對此表示懷疑。基準和看看。 – Barmar
供參考:看來這個解決方案只適用於MySQL,也不適用於SQL Server。 –