添加/编辑MYSQL密钥

时间:2015-08-18 15:24:15

标签: mysql database

我正在MySQL数据库中的一个表上工作,该表包含以下列:

 - ItemID (auto incremented key)
 - Item
 - CategoryID (empty column)
 - Category
 - SubcategoryID (empty column)
 - Subcategory

在同一数据库中的其他表中,我有一个类别和子类别列表及其唯一ID,我想从现有表中获取这些ID并将它们移植到我上面描述的项目表中。在移植ID后,我打算删除类别和子类别条目,因为ID将作为我的目的提供足够的参考。

我可以手动执行此操作,如有必要,我会手动执行此操作,但在MySQL中查看数千个条目听起来并不像我理想的下午。

我的问题很简单,有没有办法按我描述的方式使用我现有的表来改变我的项目表(上图)?

谢谢!

1 个答案:

答案 0 :(得分:1)

因此,您有一个category表,其中idcategory字段与category字段匹配items.category表。

更新items.category_id,加入category上的items.category <=> category.category表和items.category_id

中的值{更新category.id
UPDATE items 
  JOIN category ON items.category <=> category.category
SET items.category_id = category.id;

您可能需要更改一些列名称,但希望它们很明显。

对子类别和任何其他字段重复此操作。

注意:<=>与NULL安全相等,因此具有NULL值的行将正确更新