2009-10-04 24 views
1

我将一些数据导入到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

回答

4

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 
+0

辉煌!谢谢!!!! – 2009-10-04 18:59:47

相关问题