我们有一个唯一id上有count字段的记录。
这些列包括:
mainId = unique
mainIdCount = 1320 (this 'views' field gets a + 1 when the page is visited)
如何在一个查询中将所有这些mainIdCount作为单独的记录插入到另一个DBASE的另一个表中?
是的,我的意思是1320次具有相同mainId的插入!:-)我们实际上有超过10,000次id的记录。只需要这样就行了。
这是一个奇怪的问题,但我们确实需要像这样的所有这些(只是)计数的副本。
发布于 2014-08-22 02:07:22
最直接的方法是在您的表和提供一组整数的另一个行源之间进行连接操作。我们会根据需要将原始表中的每一行与整数集合中的任意多行进行匹配,以满足所需的结果。
作为该模式的一个简短示例:
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
需要有足够的大小。我在这里演示的内联视图最多返回5行。对于较大的集合,最好使用表格而不是内联视图。
这就引出了下一个问题,“如何在MySQL中生成一组整数”,
例如Generating a range of numbers in MySQL
而完成这项工作有点乏味。我们期待着MySQL中的一个最终特性,它将使返回一组有界的整数值变得更加容易;在此之前,拥有一个预填充表是最有效的方法。
https://stackoverflow.com/questions/25438100
复制相似问题