[英]how to immediately use the result of computation in another computation within MYSQL query
所以我有這個查詢:
SELECT SUM(x) AS s, s + 600 AS y FROM table;
但是然后mysql抱怨...“字段列表”中的未知列“ s”,我想它來自s + 600表達式。
如何格式化查詢,以便可以在緊隨其后的計算中立即使用SUM(x)計算別名“ s”?
SELECT SUM(x) AS s, SUM(x) + 600 AS y FROM table;
您不能在選擇列表中重復使用別名。 它不像編程語言中的“變量聲明”。
SQL語句按以下順序執行:
這意味着您可以在ORDER BY中使用SELECT中的別名,而不能在其他地方使用。
嘗試
SELECT s, s + 600 AS y FROM (SELECT SUM(x) AS s FROM table);
為什么要在MySQL中生成第二列? 只需在PHP中創建第二部分; 這樣,您可以在共享資源(數據庫服務器)上花費更少的時間,並將其余時間轉移到通常是可伸縮資源(您的Web服務器)上。
$row = mysql_fetch_assoc($result_id);
$row['y'] = $row['s'] + 600;
我真正想要創建第二列的唯一真實原因是,此查詢是否是較大查詢中子表達式的一部分(例如,您正在為另一個查詢或類似查詢生成邊界)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.