我有一个简单的查询来汇总列的值。但是对于布尔值,我使用的是ENUM字段,它将所有值存储为字符串,因此SUM工作不正确。 MySQL允许在选择和排序期间对值执行CASTING操作,但似乎它对数学函数不起作用。
以下是我的查询示例:
SELECT SUM(CAST(`tables` AS SIGNED)) AS total FROM event_guests WHERE `event_id`='1923'
我做错了吗?
答案 0 :(得分: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';