Как добавить значение из одного столбца в другой столбец и строку?

0

У меня есть таблица:

+----+--------+---------+--------+-------+
| Id | MainId | MainUrl |  Url   | Name  |
+----+--------+---------+--------+-------+
|  1 |        |         | /item1 | Item1 |
|  2 |        | /item1  | /item2 | Item2 |
|  3 |        | /item1  | /item3 | Item3 |
|  4 |        | /item1  | /item4 | Item4 |
|  5 |        | /item2  | /item5 | Item5 |
+----+--------+---------+--------+-------+

Как добавить Id строки, которая связана с MainUrl в Url, в столбец MainId? Поэтому, в конце концов, у меня есть:

+----+--------+---------+--------+-------+
| Id | MainId | MainUrl |  Url   | Name  |
+----+--------+---------+--------+-------+
|  1 |        |         | /item1 | Item1 |
|  2 |    1   | /item1  | /item2 | Item2 |
|  3 |    1   | /item1  | /item3 | Item3 |
|  4 |    1   | /item1  | /item4 | Item4 |
|  5 |        | /item2  | /item5 | Item5 |
+----+--------+---------+--------+-------+

Я знаю, что это не очень эффективный и распространенный способ связать соответствующие строки, но мне это нужно для моих собственных целей. Пожалуйста, избегайте использования двойных ссылок (!)

Теги:
sql-update

1 ответ

1
Лучший ответ

Вы можете использовать join в обновлении:

update t join
       t tt
       on t.mainurl = tt.url and t.mainurl <> ''
    set t.mainid = tt.id;
  • 0
    Этот запрос обновил все мои строки, добавил t.MainUrl != '' После on t.mainurl = tt.url

Ещё вопросы

Сообщество Overcoder
Наверх
Меню