У меня есть таблица:
+----+--------+---------+--------+-------+
| 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 |
+----+--------+---------+--------+-------+
Я знаю, что это не очень эффективный и распространенный способ связать соответствующие строки, но мне это нужно для моих собственных целей. Пожалуйста, избегайте использования двойных ссылок (!)
Вы можете использовать join
в обновлении:
update t join
t tt
on t.mainurl = tt.url and t.mainurl <> ''
set t.mainid = tt.id;
t.MainUrl != ''
Послеon t.mainurl = tt.url