MySQL通过第二个表将char列转换为INT

时间:2011-08-04 19:02:07

标签: mysql

我在表A中有一个CHAR类型列,并且列中的所有字符串都与表B中的整数一一对应。我想要的是替换表A的CHAR列中的所有字符串来自表B的相应INT。我知道我可以编写一个脚本来创建一个新列并使用相关数据填充它,但似乎应该有更简单的方法从MySQL中执行它。有没有办法用UPDATE或ALTER TABLE语句执行此操作?

1 个答案:

答案 0 :(得分:2)

好吧,只需使用int值更新列即可:

UPDATE table1
SET table1.column = table2.column
WHERE <condition>

但该列仍然是CHAR列,因此您仍然需要执行ALTER TABLE以将列转换为INT。

虽然这不应该会导致出现问题,但我更愿意添加一个新的INT列,用上面的UPDATE填充它,然后删除旧列 - 总是假设表没有那么大的重复ALTER TABLE锁定时间过长。