admin

mysql:使用SQL复制某些行?

sql

我有一个看起来像这样的表:

nid  vid  tid
1   2    3
2   2    4
3   2    4
4   2    3

我想运行一些SQL,它将采用这些行中的每一行,并基于它创建另一个行,如下所示:

在vid = 2的foreach行中,创建在vid = 3的重复行

因此,我将得出以下结论:

   nid  vid  tid
    1   2    3
    2   2    4
    3   2    4
    4   2    3
    1   3    3
    2   3    4
    3   3    4
    4   3    3

该表不是很大(我认为少于500行),这是一次性的事情(因此不需要对代码进行惊人的优化或任何其他操作)。谢谢!


阅读 268

收藏
2021-07-01

共1个答案

admin

您可以执行以下操作:

INSERT INTO TheTable(nid, vid,  nid)
SELECT nid, 3, nid
FROM TheTable
WHERE vid = 2

两列似乎具有相同的名称,但是上面的应该起作用。它使用Vid = 2个元素集,然后使用Vid = 3再次插入它们。

2021-07-01