我不确定如何在同时包含数字和字符的MySQL表中存储特定类型的数据。例如,在锦标赛中,轮转分别包含四分之一决赛、半决赛和总决赛的整数1,2,3,...30和QF, SF, GF。
我尝试过VARCHAR(2)、CHAR(2)、ENUM('1', '2', ... , 'GF')、TEXT
似乎没有一个人正确地接受了数据。存储舍入数据的最佳方式或数据类型是什么?
发布于 2013-05-25 11:57:44
就我个人而言,我只会使用INT类型,将四分之一决赛、半决赛和总决赛分配给一些超出您的域范围的特定值(例如,分别为-1、-2、-3或31、32、33 )。
通过这种方式,您可以轻松地进行搜索、使用索引、对结果集进行排序。
在表示层中将您的转换为人类可读的值,或者您可以在MySql端这样做
SELECT id,
CASE `round`
WHEN -1 THEN 'QF'
WHEN -2 THEN 'SF'
WHEN -3 THEN 'GF'
ELSE `round`
END round
FROM tournament样本输出
| ID | ROUND |
--------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | QF |
| 1 | SF |
| 1 | GF |https://stackoverflow.com/questions/16746024
复制相似问题