MySQL数据类型

时间:2013-05-25 03:13:31

标签: mysql store sqldatatypes

我不确定如何在包含数字和字符的MySQL表中存储某种类型的数据。例如,在锦标赛中,Round分别包含整数1,2,3,...30以及QF, SF, GF,分别用于四分之一决赛,半决赛和总决赛。

尝试过VARCHAR(2)CHAR(2)ENUM('1', '2', ... , 'GF')TEXT

其中任何一个似乎都没有正确接受数据。存储Round数据的最佳或数据类型是什么?

1 个答案:

答案 0 :(得分:0)

就个人而言,我只选择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 |

<强> SQLFiddle