【发布时间】:2016-04-21 11:26:27
【问题描述】:
我们在 MySql 中有一个表,在该表中我们有一个名为 'type' 的 varchar 列。
大约有 5000 万条记录的表。
从日志限制 3 中选择不同的 log_type;
+-------------------+
| type |
+-------------------+
| EMAIL_SENT |
| EMAIL_OPEN |
| AD_CLICKED |
+-------------------+
到目前为止,我们有 70 种不同的类型。未来我们会有更多的类型。
现在我们要将此 varchar 列转换为整数列。
只是我们想像下面这样更新
对于 EMAIL_SENT,我将使用 1 对于 EMAIL_OPEN,我将使用 2 等等
然后结果列将如下所示
+-------------------+
| type (int) |
+-------------------+
| 1 |
| 2 |
| 3 |
+-------------------+
我们还更改了一些其他列,因此我们正在创建新表并从现有表中加载所有值,如下所示
insert into new_table select * from old_table
在将值加载到新表中时,我们如何进行 varchar 到 int 的转换。
【问题讨论】: