СУММА не должна использоваться на ENUM. Внутренне они используют целочисленные значения. Но вы не должны использовать его для подсчета этих чисел.
Вы можете group by
столбец enum
и использовать count()
в других столбцах, чтобы получить количество отданных голосов за перечисление.
См. Следующий сценарий.
CREATE TABLE `votes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) NOT NULL,
`vote` enum('PARTY_2','PARTY_1','PARTY_9') DEFAULT NULL,
PRIMARY KEY (`user`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
insert into votes( user, vote) values( 1, 2), (2, 3), (4,3), (3, 1), (6,1), (5,2), (8, 2), (9,3);
SELECT vote `Party`, count(id) as `Votes` FROM votes group by `vote`;
выход
+---------+-------+
| Party | Votes |
+---------+-------+
| PARTY_2 | 2 |
| PARTY_1 | 3 |
| PARTY_9 | 3 |
+---------+-------+