gpt4 book ai didi

php - 在 ID 上重复插入副本

转载 作者:行者123 更新时间:2023-11-29 23:54:34 24 4
gpt4 key购买 nike

我们的记录具有唯一 ID 上的计数字段。

这些列是:

mainId = unique
mainIdCount = 1320 (this 'views' field gets a + 1 when the page is visited)

如何在一个查询中将所有这些 mainIdCount 作为单独的记录插入另一个数据库中的另一个表中?

是的,我的意思是使用相同的 mainId 插入 1320 次! :-)实际上,我们有一个 id 被访问超过 10,000 次的记录。它必须是这样的。

这是一个奇怪的问题,但我们确实需要所有这些(只是)像这样的计数的副本。

最佳答案

最直接的方法是在表和提供一组整数的另一个行源之间进行 JOIN 操作。我们会将原始表中的每一行与整数集中的任意多行进行匹配,以满足所需的结果。

作为模式的简短示例:

 INSERT INTO newtable (mainId,n) 
SELECT t.mainId
, r.n
FROM mytable t
JOIN ( SELECT 1 AS n
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
) r
WHERE r.n <= t.mainIdCount

如果 mytable 包含行 mainId=5 mainIdCount=4,我们将返回行(5,1),(5,2),(5,3),(5,4)

显然,行源r需要有足够的大小。我在这里演示的内联 View 最多返回五行。对于较大的集合,使用表格而不是内联 View 会更有利。

这引出了后续问题,“如何在 MySQL 中生成一组整数”,

例如Generating a range of numbers in MySQL

完成这项工作有点乏味。我们期待 MySQL 中的最终功能,该功能将使返回一组有界整数值变得更加容易;在此之前,预填充表是最有效的方法。

关于php - 在 ID 上重复插入副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com