Enum с числовыми полями работает описанным в мануале способом, но этот способ... Скажем так, иногда вызывает удивление.
mysql> create temporary table speedlimit (i int, lim ENUM('20', '30', '40', '50', '60'));
Query OK, 0 rows affected (0.04 sec)
mysql> insert into speedlimit values (1, 60);
Query OK, 1 row affected, 1 warning (0.04 sec)
mysql> insert into speedlimit values (2, 5);
Query OK, 1 row affected (0.04 sec)
mysql> insert into speedlimit values (3, '60');
Query OK, 1 row affected (0.04 sec)
mysql> select * from speedlimit;
+------+------+
| i | lim |
+------+------+
| 1 | |
| 2 | 60 |
| 3 | 60 |
+------+------+
4 rows in set (0.00 sec)
mysql> select * from speedlimit where lim > 20;
Empty set (0.00 sec)
mysql> select * from speedlimit where lim > '20';
+------+------+
| i | lim |
+------+------+
| 2 | 60 |
| 3 | 60 |
+------+------+
2 rows in set (0.00 sec)
Если вы понимаете, почему поведение именно такое и знаете, что это поведение не будет удивлять других разработчиков - можно использовать. По размеру enum до 255 значений занимает 1 байт, как и tinyint. Но я не рекомендую использовать enum с числовыми значениями.