如何将值从一列添加到另一列和行?

时间:2018-02-18 19:41:02

标签: mysql sql-update

我有一张桌子:

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

如何将从MainUrl链接到Url的行的Id添加到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 |
+----+--------+---------+--------+-------+

我知道连接相应的行不是非常有效和常用的方法,但我需要它用于我自己的目的。请避免使用双链接(!)

1 个答案:

答案 0 :(得分:1)

您可以在更新中使用join

update t join
       t tt
       on t.mainurl = tt.url and t.mainurl <> ''
    set t.mainid = tt.id;