Обновите таблицу MySQL, используя совпадение двух имен полей (родитель, дочерняя категория) - PullRequest
1 голос
/ 04 октября 2009

Я импортировал некоторые данные в базу данных 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 каждой подкатегории, чтобы иметь родительский идентификатор? Так что вместо

2 Ball | Бейсбол | нуль

Мне нравится иметь

2 Ball | Бейсбол | 1

1 Ответ

4 голосов
/ 04 октября 2009

MySQL обычно не позволяет запускать select и update для одной и той же таблицы, но вы можете обмануть его, используя «производную таблицу»:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...