我正在MySQL数据库中的一个表上工作,该表包含以下列:
- ItemID (auto incremented key)
- Item
- CategoryID (empty column)
- Category
- SubcategoryID (empty column)
- Subcategory
在同一数据库中的其他表中,我有一个类别和子类别列表及其唯一ID,我想从现有表中获取这些ID并将它们移植到我上面描述的项目表中。在移植ID后,我打算删除类别和子类别条目,因为ID将作为我的目的提供足够的参考。
我可以手动执行此操作,如有必要,我会手动执行此操作,但在MySQL中查看数千个条目听起来并不像我理想的下午。
我的问题很简单,有没有办法按我描述的方式使用我现有的表来改变我的项目表(上图)?
谢谢!
答案 0 :(得分:1)
因此,您有一个category
表,其中id
和category
字段与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值的行将正确更新