MySQL将表从varchar移动到int
我正在将具有MySQL将表从varchar移动到int,mysql,Mysql,我正在将具有varchar(64)类别id列的旧螳螂表移动到具有int(10)类别id列的新螳螂表 简化结构如下所示 错误表(旧数据库) +----+-------------+-------------+--------+ |id |项目id |类别id |报告| +----+-------------+-------------+--------+ |1 | 0 |服务器|崩溃| |2 | 0 |数据库|错误| |3 | 1 |服务器|错误| |4 | 1 |服务器|崩溃| +----+--
varchar(64)
类别id列的旧螳螂表移动到具有int(10)
类别id列的新螳螂表
简化结构如下所示
错误表(旧数据库)
+----+-------------+-------------+--------+
|id |项目id |类别id |报告|
+----+-------------+-------------+--------+
|1 | 0 |服务器|崩溃|
|2 | 0 |数据库|错误|
|3 | 1 |服务器|错误|
|4 | 1 |服务器|崩溃|
+----+-------------+-------------+--------+
类别表(新数据库)
+----+------------+----------+
|id |项目| id |名称|
+----+------------+----------+
|0 | 1 |服务器|
|1 | 1 |数据库|
|2 | 2 |服务器|
|3 | 2 |数据库|
+----+------------+----------+
我需要一个神奇的查询,它将用category\u表中的数字category\u id
替换category\u表中的category\u id
。谢天谢地,我能够通过project\u id
匹配行,通过name
匹配类别
这是我正在研究的问题,但我已经陷入了复杂性
更新bug\u table b使用category\u table设置b.category\u id=c.id,其中b.category\u id=c.name
我喜欢以与新查找/参考表不同的方式处理此任务
如果有其他表应用相同的类别更改,则这些表的操作(基本上是步骤2到步骤5)也将类似。谢谢,我将试一试。但是项目id是完整的,它是Mantis表的一部分,每个项目都有自己的类别。
UPDATE bug_table JOIN category_table ON bug_table.category_id = category_table.name
SET bug_table.category_new = category_table.id