我有一个简单的查询来汇总列的值。然而,对于 bool 值,我使用 ENUM 字段,它将所有值存储为字符串,因此 SUM 工作不正确。 MySQL 允许在选择和排序期间对值执行 CASTING 操作,但它似乎不适用于数学函数。
这是我的查询示例:
SELECT SUM(CAST(`tables` AS SIGNED)) AS total FROM event_guests WHERE `event_id`='1923'
我做错了什么吗?
最佳答案
尝试在 SQL 变量中分配强制转换字段。然后在数学运算中使用该变量。
<小时/>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';
关于mysql - 是否可以在 SUM 查询期间对值进行 CAST 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938988/