使用2个字段名(父类,子类)之间的匹配更新MySQL表
问题描述:
我将一些数据导入到mysql数据库并尝试清理它。使用2个字段名(父类,子类)之间的匹配更新MySQL表
| ID |类别名称|父母名称| parent_id
1 Baseball (this is a parent)
2 Ball | Baseball | null
3 Bat | Baseball | null
4 Glove | Baseball | null
5 Basketball (this is a parent)
6 Basket | Basketball | null
7 Net | Basketball | null
我该如何做一个UPDATE语句,以便我可以更新每个子类别的parent_id以拥有父ID?所以不是
2球|棒球| null
我喜欢有
2球|棒球| 1
答
MySQL通常不会允许您运行选择和更新对同一个表,但你可以使用它了“派生表”招:
UPDATE categories
SET parent_id = (
SELECT id FROM (SELECT id, name FROM categories) c
WHERE c.name=categories.parent_name
)
WHERE parent_name IS NOT NULL
辉煌!谢谢!!!! – 2009-10-04 18:59:47