2011-02-08 81 views
0

我有一個簡單的查詢來總結列的值。然而,對於布爾值,我使用ENUM字段,它將所有值存儲爲字符串,因此SUM工作不正確。 MySQL允許在選擇和排序期間對值執行CASTING操作,但它似乎不適用於數學函數。在SUM查詢期間是否可以使用CAST值?

這裏是我的查詢的示例:

SELECT SUM(CAST(`tables` AS SIGNED)) AS total FROM event_guests WHERE `event_id`='1923' 

我做錯什麼了嗎?

+0

什麼的`tables`領域,從字面上看?一個字符串'0'或一個字符串'1'?如果它只是一個布爾類型,爲什麼不使用本地MySQL`bit`類型呢? – 2011-02-08 22:07:47

回答

1

嘗試在SQL變量中分配鑄造字段。然後在Maths操作中使用該變量。


SET @v2 = CAST('tables' AS SIGNED); 
SELECT (@v1 := CAST(`tables` AS SIGNED)) AS signed_tables, SUM(@v1) AS total FROM event_guests WHERE `event_id` = '1923'; 
+0

你能舉個例子嗎? – Nazariy 2011-02-08 23:41:26

相關問題